0

我很难让任何 jquery 代码工作。我已经尝试了一些示例,但没有一个对我有用。这是一个示例,它可以在 C 驱动器中的 chrome 中工作,但不能来自网络上的 Dropbox,它在 ie9 中也根本不工作。

当它在我的 C 驱动器上的 chrome 上“有点”工作时,它开始显示所有选项卡,而不是应该显示的选项卡 A。然后单击其中一个链接后,它仅显示相应的选项卡。

我的最终目标是修改我的网站,以便每次单击菜单项时重新加载时整个页面都不会闪烁。

<!--  found at: http://jsfiddle.net/uFgtS/ -->

<script type='text/javascript' src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type='text/javascript'>

$(window).on('hashchange', function() {
    $('div.tab').hide();
    $(location.hash).show();
});

$('a.hash').on('click', function(e){
    e.preventDefault();
    location.hash = $(this).data('hash');
});
</script>

<a href="#A" data-hash="A" class="hash">A Link</a>
<a href="#B" data-hash="B" class="hash">B Link</a>
<a href="#C" data-hash="C" class="hash">C Link</a>

<div id="A" class="tab">Tab A</div>
<div id="B" class="tab hidden">Tab B</div>
<div id="C" class="tab hidden">Tab C</div>
4

2 回答 2

2

你忘了 :

$(document).ready(function() {

    // your code goes here

});

所以当将点击处理程序附加到 时a.hash,DOM 中没有这样的元素。

于 2013-05-09T18:21:31.663 回答
1

如果您将 jQuery 放在它影响的元素之前,则需要将其包装在

$(document).ready(function() {
    // Code to be run once the document is ready
}

或者,将您的脚本放在文档正文的最末尾以使其$(document).ready()冗余。

于 2013-05-09T18:22:35.457 回答