我需要为 select
标记创建一个事件监听器。每当元素变得禁用
或启用
时都应该触发它。
这可能吗?
P.S.:onchange
不会检测禁用。
最佳答案
JQuery 1.6+
您可以更改 jQuery prophooks:
jQuery.propHooks.disabled = {
set: function (el, value) {
if (el.disabled !== value) {
el.disabled = value;
value && $(el).trigger('disabledSet');
!value && $(el).trigger('enabledSet');
}
}
};
如果通过以下方式禁用元素,这将触发“disabledSet”:
$(element).prop('disabled', true);
如果通过以下方式启用元素,将触发“enabledSet”:
$(element).prop('disabled', false);
然后你可以像这样监听你的事件:
$(element).on('disabledSet', myDisabledHandler);
关于jQuery对象禁用事件监听器,如何检测html属性何时发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8460242/