jQuery show / hide滑块在jQuery 1.5.x中不起作用?

时间:2011-11-24 16:47:40

标签: jquery

我在这里使用以下脚本:http://8wayrun.com/wiki/algol/

XenForo.register('.ToggleContents', 'XenForo.ToggleContents');

XenForo.ToggleContents = function($toc)
{
    var hideText = 'hide';
    var showText = 'show';
    var isVisible = true;

    $toc.ready(function() {
        $toc.find(':first').append('<span class="toggle">(<a href="#">'+hideText+'</a>)</span>');
    });

    $toc.find('.toggle:first').click(function(e)
    {
        e.preventDefault();

        if (isVisible = !isVisible)
        {
            $toc.find('.toggle a:first').html(hideText);
            $toc.find('.contents:first').slideDown();
        }
        else
        {
            $toc.find('.toggle a:first').html(showText);
            $toc.find('.contents:first').slideUp();
        }
    });
}

它的功能非常简单。它做的第一件事就是将<span class="toggle">hide</a>链接附加到任何具有“.ToggleContents”类的div ...这样做非常完美。

它接下来要做的就是获取它刚刚创建的链接,阻止默认功能并将其更改为隐藏/显示链接。这在jQuery 1.4.x中运行得很好。但是,在jQuery 1.5.x中,它根本不起作用。 e.preventDefault()永远不会运行......

这告诉我.find('.toggle:first')在1.5.x中不起作用。有谁知道我现在应该使用什么?

1 个答案:

答案 0 :(得分:1)

我想出来......在1.5.x中这是必需的,但不是在1.4.x中......非常奇怪。

我所做的是将$toc.find('.toggle:first').click(function(e)移到$toc.ready(function()内,现在一切都运转良好。