当我将单击处理程序绑定到禁用该元素的元素时,然后尝试将另一个事件委托给它,第二个事件不会触发。
这有一个简单的解决方案吗?
$('button').click(function() {
log('first click fired');
$(this).prop('disabled', true);
});
$('span').on('click', 'button', function() {
log('second click fired');
});
HTML:
<span><button>click</button></span>
编辑:
为了澄清,在对象上设置点击事件将触发as seen in this edit,我希望能够通过委派
来实现答案 0 :(得分:4)
禁用元素不会触发鼠标事件,因为它们是......等待...禁用。
由于它们不会触发鼠标事件,因此没有事件会触发到范围,并且事件处理程序永远不会触发。
解决方案是不禁用该元素,就我所知,它几乎是唯一的解决方案,但如果您解释为什么需要这种行为,也许有人可以帮助您解决方法?
修改强>
如果您创建自己的代表团,它似乎有效:
$('span').on('click', function(e) {
if (e.target.tagName.toLowerCase() === 'button')
log('second click fired');
});