我有一个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/