试图让jquery工作

时间:2013-05-09 18:19:51

标签: javascript jquery

我很难获得任何jquery代码。我尝试了一些例子,没有人能为我工作。下面是一个示例,它在C盘中的chrome中有效,但不是来自Web上的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>

2 个答案:

答案 0 :(得分:2)

你忘了:

$(document).ready(function() {

    // your code goes here

});

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

答案 1 :(得分:1)

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

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

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