IE8问题与toggle()显示/隐藏内容

时间:2010-09-01 21:50:56

标签: jquery

我在IE8中遇到一个问题,只有链接应该在点击时显示/隐藏内容。 IE7和webkit和gecko浏览器工作正常,只有IE8才是问题!我看不出我的代码出了什么问题,甚至只是尝试show()而不是toggle()没有任何影响 - 我在这里错过了什么?谢谢你的帮助!

    //hide class=hidden elements
    $('.hidden').hide();
    $('a#hide').live("click", function(){
                        $(this).parent().siblings(".hidden:first").toggle();
                        return false;
                    });

以上js适用于以下html:

<a href="#hidden" id="hide">Click to show</a></p>
<p id = "hidden" class = "hidden">
    my content
</p>

1 个答案:

答案 0 :(得分:0)

从技术上讲,您的脚本不仅在IE8中起作用,而且在任何其他浏览器中都不起作用。然后,它的1年后,更新的jQuery出来了。

但是后来更好,从来没有,这是我的回答:

现场演示:http://jsfiddle.net/hobobne/Vnasb/2/

在我的现场演示中,我删除了不必要的东西并重新格式化了一点。我仍然保留:first参数,因为这是一个很好的例子。我还将包含您自己的代码,只是有效。请注意,在您的代码中,有一个多余的</p>

<强>脚本:

$('.hidden').hide();
$('a#hide').live("click", function(){
    $('.hidden').toggle();
    return false;
});

<强>体:

<a href="#hidden" id="hide">Click to show</a></p>
<p id = "hidden" class = "hidden">
    my content
</p>

我不确定,你们是如何在“过去的日子”里做的事情,但是[...].parent().siblings(".hidden:first")[...]是有问题的部分。

旁注:当点击触发元素时,脚本是否意味着自动滚动到#hidden的视点?使用<a href="#hidden" ...?当你在jQuery函数中返回false时,这是行不通的。

PS:经过测试 IE9 IE8 IE7 ,当然还有 FF - 效果很好。