大佬教程收集整理的这篇文章主要介绍了jQuery UI非ajax选项卡加载整个网站本身?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图加载我的网站产品页面上的标签…
当页面加载时,我会看到标签内容一秒钟(标准html标签不是ajaX),然后突然,我的整个网站加载在标签内。
<div id="productTabs"> <ul> <li><a href="#tabDescription">Description</a></li> <li><a href="#tabSpecs">Specifications</a></li> <li><a href="#tabReviews">Reviews</a></li> <li><a href="#tabDownloads">Downloads</a></li> </ul> <div id="tabDescription">test</div> <div id="tabSpecs">test</div> <div id="tabReviews">test</div> <div id="tabDownloads">Sorry,no downloads available for this product.</div> </div> <script type="text/javascript">jQuery(document).ready(function(){jQuery("#productTabs").tabs();});</script>
但是,我在网站上有很多其他javascript,只是想知道有没有人看过这个。
非常感谢
> BASE元标记指示浏览器将标签中的href属性(用作标签内容的引用)从哈希标识变换为完整的URL(使用BASE标记值)。这是预期的行为。
>以前版本的Tabs UI会尝试猜测href是否真的是远程的,分离href tab值,然后将其与当前URL AND进行比较,并将其@R_854_8801@标签进行比较,然后决定它是否实际上是本地的。
>最新版本的jQuery不检查BASE标签值。
>所以,最新版本@R_854_8801@元标记一起使用时,将尝试使用Ajax加载选项卡内容,重新加载自己(或BASE URL中的任何内容)。
这是1.8.24版中使用的jQuery UI标签:
this.anchors.each(function( i,a ) { var href = $( a ).attr( "href" ); // For dynamically created HTML that contains a hash as href IE < 8 expands // such href to the full page url with hash and then misinterprets tab as ajax. // Same consideration applies for an added tab with a fragment identifier // since a[href=#fragment-identifier] does unexpectedly not match. // Thus normalize href attribute... var hrefBase = href.split( "#" )[ 0 ],baseEl; if ( hrefBase && ( hrefBase === LOCATIOn.toString().split( "#" )[ 0 ] || ( baseEl = $( "base" )[ 0 ]) && hrefBase === baseEl.href ) ) { href = a.hash; a.href = href; }
这是jQuery UI Tabs在1.9.2版本中使用的:
function isLocal( anchor ) { return anchor.hash.length > 1 && anchor.href.replace( rhash,"" ) === LOCATIOn.href.replace( rhash,"" ) // support: Safari 5.1 // Safari 5.1 doesn't encode spaces in window.LOCATIOn // but it does encode spaces from anchors (#8777) .replace( /\s/g,"%20" ); }
由于广泛重写Tabs代码,代码的组织方式不同,但您可以获得想法($(“base”)[0]是BASE元标记值)。
到目前为止,我还没有找到任何方法来告诉标签“这是本地的,不要使用Ajax”使用正常的选项卡API。我可以为您提供什么,我做了什么来快速解决它(同时我问,重新检查,也许填写一个错误报告):一个黑客。
function isLocal( anchor ) { return anchor.hash.length > 1 && ( (anchor.href.replace( rhash,"" ) === LOCATIOn.href.replace( rhash,"" ).replace( /\s/g,"%20" )) || (anchor.href.replace( rhash,"" ) === $( "base" )[ 0 ].href)); }
这是更新的版本加上先前版本的检查。
在最新的jQuery UI的非精简副本中,用它替换isLocal函数。然后将@L_197_39@缩小。更换原始版本。测试。
它在Firefox(17.0.1)和Chromium(18.0.1025.168)中对我有用。
缺点是您无法使用第三方副本(来自CDN)。对我来说这不是一个问题,因为我的大多数应用程序都用于内部网。
如果任何人找到一个更好的解决方案,或者意识到如何在没有劫持jQuery UI代码的情况下做到这一点,请告诉我们。
更新:我发现这个错误报告(有几个重复):http://bugs.jqueryui.com/ticket/7822我很想添加自己的评论,但似乎jQuery开发人员将不会“修复”,因为他们认为问题在别的地方。来自bugtracker的报价:
以上是大佬教程为你收集整理的jQuery UI非ajax选项卡加载整个网站本身?全部内容,希望文章能够帮你解决jQuery UI非ajax选项卡加载整个网站本身?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。