2014-10-16 23 views
1
$(".btn-atc").click(function() { 
    $(".btn-atc span").removeClass("blue").addClass("red"); 
    setTimeout(function() { 
     $(".btn-atc span").removeClass("red").addClass("blue"); 
    }, 1500); 
}); 

Fiddle应用jQuery的行动只是为了点击按钮

我所做的上方,一个按钮就可以有一个像当其被点击,让用户知道动作效果的装载已经完成(蓝红色表示购物车图标和加载图标)。当点击一个按钮时,它将功能应用于页面上的每个按钮。我只需要在按下的按钮上执行操作就必须做什么?

回答

1

你已经这样做是正确的,只是改变一点点在你的代码,使用$ (this): -

$(".btn-atc").click(function() { 
    var ref=$(this); 
$(ref).find("span").removeClass("blue").addClass("red"); 
    setTimeout(function() { 
    $(ref).find("span").removeClass("red").addClass("blue"); 
    }, 1500); 
}); 
+0

此功能按要求运行http://jsfiddle.net/xpvv0fqv/3/ – 2014-10-16 12:37:59

1

使用this,它指的是调用事件的元素。

$(".btn-atc").click(function() { 
    $("span", this).removeClass("blue").addClass("red"); 
    var span = $("span", this); 
    setTimeout(function() { 
     span.removeClass("red").addClass("blue"); 
    }, 1500); 
}); 

您还可以使用$(this).find('span')代替$("span", this)

+0

触发红色变化,但不会触发回蓝色超时http://jsfiddle.net/xpvv0fqv/1/ – 2014-10-16 12:34:58

+1

@ChrisTraverse,已更新回答 – Satpal 2014-10-16 12:38:21

+0

现在工作http://jsfiddle.net/xpvv0fqv/4/ – 2014-10-16 12:39:47

0

尝试使用“这个”

$(".btn-atc").click(function() { 
    $(this).next('span').removeClass("blue").addClass("red"); 
    setTimeout(function() { 
     $(this).next('span').removeClass("red").addClass("blue"); 
    }, 1500); 
}); 
+0

这似乎并不会触发任何行动不幸的是http: //jsfiddle.net/xpvv0fqv/2/ – 2014-10-16 12:37:08