我有一个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中的内容会在页面加载后填充。
感谢您的帮助!
答案 0 :(得分:2)
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");
});
});
答案 1 :(得分:1)
您可以使用条件运算符?
:
来显示正/负图像。我的解决方案正在关注
$("#xmlDiv").on("click", "ul", function(e) {
$(this).find(".mainlist").slideToggle(function () {
$('span.minus').html($('span.minus').html('<img src="images/plus.png">') == '<img src="images/plus.png">' ? '<img src="images/minus.png">' : '<img src="images/plus.png">');
});
});