2015-09-24 43 views
0

在單選按鈕的更改事件期間,我顯式調用了一組相關單選按鈕上的單擊事件以更改當前選擇。依賴單選按鈕可能需要根據其狀態單擊其他相關複選框。jQuery拒絕觸發明確調用的事件

很快,鏈接的單擊事件停止執行。 jQuery放棄了,因爲jQuery.event.triggered在下面的代碼中等於e.type。

eventHandle = elemData.handle = function(e) { 
    // Discard the second event of a jQuery.event.trigger() and 
    // when an event is called after a page has unloaded 
    return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ? 
     jQuery.event.dispatch.apply(elem, arguments) : undefined; 
}; 

的幾乎無法辨認的意見不建議上面的代碼和鏈接點擊事件之間的聯繫,但他們的代碼肯定是有一定影響。

如果我在調用下一個之前清除觸發的事件,我的問題似乎得到解決。

delete jQuery.event.triggered; 
$(...).click(); 

(我知道對寫這種麪條代碼的建議。該代碼是沒有單元測試或文檔繼承...)

我是安全的,只是刪除觸發事件屬性也是這樣嗎? 什麼可能會更好?

回答

0

請勿觸發click。要改變radiobuttoncheckbox狀態,您可以使用

$('radio-button-selector').prop('checked', true) 

$('radio-button-selector').prop('checked', false) 
+0

我不認爲這會觸發事件偵聽器,這正是我所需要的。 – Nathan