2011-03-06 123 views
1

我需要控制事件被觸發的順序。爲了確保我的自定義事件僅在另一個事件完成後觸發,我正在觸發第一個事件處理程序中的自定義事件。jQuery - 如何讓自定義事件只觸發一次?

$(".HwRadioButton").click(function(event) {  
     //Stuff that needs to happen before custom event 
     ... 
    //trigger custom event    
     $(".HwRadioButton").trigger("onAnswerChange"); 
}); 

定製事件綁定:

​​

的問題是,我有有 「.HwRadioButton」 的一類屬性值12組的元素。事件「onAnswerChange」被觸發12次。這是爲什麼?我是否還需要選擇任何元素?我只想定義一個自定義事件並明確觸發它。

謝謝!

回答

5

在您的代碼嘗試:

$(".HwRadioButton").click(function(event) {  
     //Stuff that needs to happen before custom event 
     ... 
    //trigger custom event    
     $(this).trigger("onAnswerChange"); 
}); 

將觸發被點擊的一個元素的onAnswerChange。

+0

完美。現在有意義.. – Nick 2011-03-06 02:12:59

+1

不客氣。 – 2011-03-06 02:38:34

1

$(".HwRadioButton").trigger("onAnswerChange") triggers onAnswerChange對於該選擇器所選擇的所有項目。僅針對$(this).trigger("onAnswerChange")觸發事件。

2

您應該使用one

$('.HwRadioButton').one('click', function() { 
    alert('This will be displayed only once.'); 
}); 
+0

爲什麼這個投票被拒絕? – Kimtho6 2011-03-06 02:15:52