2014-10-16 19 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