1

我已经准备好尝试调试这段代码了。我有一个页面需要在同一页面中显示大量子帖子而无需转到另一个页面,但是我无法使代码正常工作,但我找不到任何错误。我什至完全删除了它并从头开始重新编写它以试图找到错误但什么也没有,而且一如既往地 JavaScript 在向我指出错误方面是可怕的。我已经尝试过 firebug、jslint 并在 jsfiddle 中制作了相同的结构,但我找不到问题所在。我会说相同的代码在 jsfiddle 中运行良好,但在其他任何地方都没有。我看到页面正在正确加载 jquery,所以 api 不是问题。请帮忙,我不知道还能做什么!

下面是代码结构:

HTML-帖子导航

<ul id="sub_select">
  <li class="select">
   <a href="#post1">Post 1</a>
  </li>
  <li class="select">
   <a href="#post2">Post 2</a>
  </li>
</ul>

HTML-帖子

<div id="post1" class="about_txt">
  <div class="title">
    <h1>Post 1</h1>
  </div>
  <div class="desc">
    <p>The post itself</p>
  </div>
</div>
<div id="post2" class="about_txt" style="display: none;">
  <div class="title">
    <h1>Post 2</h1>
  </div>
  <div class="desc">
    <p>The post itself</p>
  </div>
</div>

jQuery脚本:(

$(document).ready(function() {
    $(".select a").click(function(event){
        event.preventDefault();
        $(".about_txt").hide('slow');
        var toShow = $(this).attr('href');
        $(toShow).show('slow');
    });​
});

更新:我添加了显然忘记复制的 $,但感谢您指出这一点。我仍然有这个问题。

4

2 回答 2

6

此代码末尾似乎有一个“不可见”字符:

$(".select a").click(function(event){
    event.preventDefault();
    $(".about_txt").hide('slow');
    var toShow = $(this).attr('href');
    $(toShow).show('slow');
});​  //<= There's an invisible character here, 
     //    you can try pressing backspace once at the end of the semicolon

为了快速修复,删除不可见字符或复制并粘贴以下代码并替换您的:

$(document).ready(function() {
    $(".select a").click(function(event){
        event.preventDefault();
        $(".about_txt").hide('slow');
        var toShow = $(this).attr('href');
        $(toShow).show('slow');
    });
});

编辑:一点调查显示,隐形字符是零宽度空间(U+200B)

于 2012-09-20T02:21:40.820 回答
1

这一行 (document).ready(function()应该是$(document).ready(function() 它应该在文档前有一个$符号..

要仔细检查单击事件的注释并在其中放置警报。请检查警报是否触发。

于 2012-09-19T23:15:28.140 回答