2014-03-04 44 views
0

我使用jQuery 1.7.2,並得到了一個對這樣一類更改事件:jQuery的變化往往引發

$(document).on('change', '.item_amount', function(){ 

}); 

在同一個頁面上的許多選擇有一流的,如果我改變的一個如果我更改其中一個選擇(X是具有該類的選擇的數量),則選擇更改事件觸發器X次,但我只希望它觸發一次,因爲只有一個選擇已更改。

這是正常行爲還是我做錯了什麼?

編輯:

這個問題似乎在別處。包含該select的元素被插入(Ajax調用),並且當其中一個被插入到dom中時,觸發所有現有元素的更改事件。

所以基本上我拿到了選擇號碼1,其中包含一些產品。選擇產品時將HTML代碼插入保存所有當前產品的div中。發生這種情況時,會觸發該div中所有產品的更改事件。

+0

該代碼是否在循環中 –

+0

看起來像上面的代碼可能在循環中執行多次 –

+0

無法重現。分享測試案例。 – Prinzhorn

回答

2

使用this keyword來引用在更改功能塊中更改的當前元素。

this - > JavaScript或Native Dom元素。

$(this) - >您的jQuery對象

$(document).on('change', '.item_amount', function(){ 
    alert(this.value); 
    console.log(this); 
}); 
+1

這有助於找到真正的問題。我在我的編輯中描述了它。 –

0

設置。對元素進行更改並將其作爲參數傳遞給函數?