仅将jQuery操作应用于单击的按钮

仅将jQuery操作应用于单击的按钮,jquery,Jquery,我这样做是为了在点击按钮时让用户知道操作已经完成(蓝色和红色代表购物车图标和加载图标),按钮可以产生类似加载的效果。单击按钮时,该功能将应用于页面上的每个按钮。我必须做什么才能只对按下的按钮执行操作?使用此,它指调用事件的元素 $(".btn-atc").click(function () { $(".btn-atc span").removeClass("blue").addClass("red"); setTimeout(function () { $(".b


我这样做是为了在点击按钮时让用户知道操作已经完成(蓝色和红色代表购物车图标和加载图标),按钮可以产生类似加载的效果。单击按钮时,该功能将应用于页面上的每个按钮。我必须做什么才能只对按下的按钮执行操作?

使用
,它指调用事件的元素

$(".btn-atc").click(function () {
    $(".btn-atc span").removeClass("blue").addClass("red");
    setTimeout(function () {
        $(".btn-atc span").removeClass("red").addClass("blue");
    }, 1500);
});
您也可以使用
$(this)。查找('span')
代替
$(“span”,this)

尝试使用“this”


您已经做对了,只需使用$在代码中稍作更改即可(如下所示):-


这会触发变为红色,但在超时@ChrisTraverse,Updated answer后不会触发变回蓝色。不幸的是,这似乎不会触发任何操作
$(".btn-atc").click(function () {
    $("span", this).removeClass("blue").addClass("red");
    var span = $("span", this);
    setTimeout(function () {
        span.removeClass("red").addClass("blue");
    }, 1500);
});
$(".btn-atc").click(function () {
    $(this).next('span').removeClass("blue").addClass("red");
    setTimeout(function () {
        $(this).next('span').removeClass("red").addClass("blue");
    }, 1500);
});
  $(".btn-atc").click(function () {
    var ref=$(this);
 $(ref).find("span").removeClass("blue").addClass("red");
   setTimeout(function () {
    $(ref).find("span").removeClass("red").addClass("blue");
   }, 1500);
 });