2013-05-09 69 views
0

我很难得到任何jQuery代码的工作。我试过一些例子,但没有一个适合我。下面是一个例子,这种类型的工作来自C驱动器的Chrome,但不是来自Web上的Dropbox,在ie9中也没有任何作用。试图让jquery工作

当它是从我的C驱动器的铬'工作',它开始显示所有的选项卡,而不是只是选项卡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> 
+0

似乎对我http://jsfiddle.net/GM6Qk/工作 – 2013-05-09 18:21:18

+0

我认为你需要使用:'如果(在窗口 “onhashchange”){// ... }'在这里看到:HTTP:/ /stackoverflow.com/questions/3090478/jquery-hash-change-event – ZimSystem 2013-05-09 18:25:54

+0

我添加了建议的文档就绪行。我想我不明白我下一步该做什么。我真的不明白代码是如何工作的,我只是想看看我能用这个我没有写的例子来做什么。我们的目标是,当页面最初加载时,它不应该显示标签A标签B标签C,它应该只显示标签A.然后,如果你点击一个链接,它会改变显示哪一个。 – John 2013-05-09 18:40:26

回答

2

你忘了:

$(document).ready(function() { 

    // your code goes here 

}); 

所以附加的点击处理程序a.hash的时候,有一个在DOM没有这样的元素。

1

如果你的元素之前将您的jQuery,这会影响你需要在文档正文的最后把它包起来的

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

或者,将你的脚本,使$(document).ready()冗余。