当复选框被禁用时,有没有办法添加一个事件处理程序(如.on('change' ..)
)?
我尝试了这个方法(请参阅jsfiddle),但是当我禁用复选框时,它没有触发:
$('#myCB').on('change', function() {
console.log('checkbox disabled? ' + $('#myCB').is(':disabled'));
});
$('#myCB').prop('disabled', true); // does NOT trigger the function above
- Edit:* 我想将逻辑添加到复选框中,只是因为在我的应用程序中,我不知道复选框何时会被禁用。
4条答案
按热度按时间bfrts1fy1#
最简单的办法应该是:
ykejflvf2#
change事件会在字段值改变时触发(也就是复选框被选中时)。它不会在禁用时起作用。
在禁用复选框时触发一个事件可能比较棘手。请参阅here。
stszievb3#
我最好的猜测是你想监听DOM突变事件。你可以通过DOM突变事件来做这件事,就像任何普通的javascript事件一样,比如鼠标点击。
请参阅:http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-MutationEvent
示例:
7d7tgy0s4#
实际上,我刚刚发现了一种在每次属性更改时触发change事件的好方法:
现在,每当我在任何元素上调用
.prop()
时,它都会自动触发我的自定义更改事件。请参阅更新的jsfiddle。Edit:正如rahul maindargi在他的评论中提到的,最好使用自定义事件而不是“change”事件本身。我已经更新了我的代码,现在它使用自定义事件了。