【问题标题】:Trying to make jquery work试图让 jquery 工作
【发布时间】:2013-05-09 18:19:51
【问题描述】:

我很难让任何 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>

【问题讨论】:

  • 似乎对我有用jsfiddle.net/GM6Qk
  • 我认为你需要使用:if ("onhashchange" in window) { //... } 看这里:stackoverflow.com/questions/3090478/jquery-hash-change-event
  • 我添加了建议的文档就绪行。我想我不明白接下来我应该做什么。我真的不明白代码是如何工作的,我只是想看看我能用这个我没有写的例子做什么。目标是当页面最初加载时,它不应该显示选项卡 A 选项卡 B 选项卡 C,它应该只显示选项卡 A。然后,如果您单击一个链接,它会更改显示哪个链接。

标签: javascript jquery


【解决方案1】:

你忘了:

$(document).ready(function() {

    // your code goes here

});

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

【讨论】:

    【解决方案2】:

    如果你把你的 jQuery 放在它影响的元素之前,你需要把它包装起来

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

    或者,将您的脚本放在文档正文的最后,使$(document).ready() 变得多余。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-01
      • 2011-04-13
      • 2015-09-07
      • 1970-01-01
      • 1970-01-01
      • 2014-03-02
      • 2011-10-02
      • 2015-10-21
      相关资源
      最近更新 更多