我在页面上有许多可点击的元素,在加载资源之前不应启用这些元素。我的想法是用一个.disabled
类初始化按钮,然后在资源准备好时将其删除。同时,我将在.disabled
click 事件上有一个处理程序,以防止将事件传播到其他处理程序。
问题是,即使我.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');
小提琴:http : //jsfiddle.net/4rJxU/7/
这将首先弹出一个“启用”警报,然后是一个“禁用”警报,大概是因为委托事件被.clickable
元素的父级捕获,因此稍后处理?
如何使用委托事件禁用点击处理程序?