我有一些頁面上可點擊的元素,應該在資源加載之前不能啓用。我的想法是使用.disabled
類來初始化按鈕,然後在資源準備就緒時刪除它。與此同時,我會有一個處理程序,它會阻止事件傳播給其他處理程序。動態禁用/啓用使用委託事件的jQuery點擊處理程序
問題是,即使我首先添加了.disabled
處理程序,但在其他點擊處理程序之前我無法啓動它。
$("body").on('click','.disabled', function(e) {
alert('disabled');
e.stopImmediatePropagation();
return false;
});
$('.clickable').click(function(e) {
alert('enabled');
});
// Call this when ready:
//$('.clickable').removeClass('disabled');
FIDDLE:http://jsfiddle.net/4rJxU/7/
這首先會彈出一個「啓用」警報,然後一個「禁用」警告,這可能是因爲委派的事件由.clickable
元素的父捕獲,並在稍後處理?
如何禁用使用委託事件的點擊處理程序?
如果您在加載資源後調用某個函數,那麼爲什麼不只是附加點擊處理程序呢? – Aust