我有一个toggle()按钮,试图显示加号/减号图像。唯一实际起作用的时间是第一次单击。

我的代码:

$("#xmlDiv").on("click", "ul", function(e) {
    $(this).find(".mainlist").slideToggle(function () {
        $('span.minus').html('<img src="images/plus.png">');
        },function() {
        $('span.minus').html('<img src="images/minus.png">');
    });
});


HTML:

<span class="minus"><img src="images/minus.png"></span>


我使用的是on,因为#xmlDiv中的内容是在页面加载后填充的。

谢谢你的帮助!

最佳答案

slideToggle()只能有一个将在完成后调用的回调,而不是像hover事件那样的多个回调。

.slideToggle( [duration ] [, complete ] )


考虑以下具有2个参数的代码:


持续时间
打回来




$("#xmlDiv").on("click", "ul", function(e) {
    $(this).find(".mainlist").slideToggle('slow', function () {
        if($('span.minus img').attrib('src') == 'images/plus.png')
            $('span.minus img').attr("src", "images/minus.png");
        else
            $('span.minus img').attr("src", "images/plus.png");
    });
});

关于jquery - jQuery切换仅在第一次使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32289891/

10-12 06:32