Ton*_*nov 3 jquery events attributes listener
我需要为select标记创建一个事件监听器.它应该在元素变为disabled或时触发enabled.
这甚至可能吗?
PS: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');
}
}
};
Run Code Online (Sandbox Code Playgroud)
如果通过以下方式禁用元素,则会触发"disabledSet":
$(element).prop('disabled', true);
Run Code Online (Sandbox Code Playgroud)
如果通过以下方式启用了元素,则会触发"enabledSet":
$(element).prop('disabled', false);
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样听你的事件:
$(element).on('disabledSet', myDisabledHandler);
Run Code Online (Sandbox Code Playgroud)
可以使用这个 jquery.watch插件。
http://darcyclarke.me/development/detect-attribute-changes-with-jquery/
该插件检测 css 更改,但我在此 JSfiddle中对其进行了编辑以处理属性。