jQuery对象禁用事件监听器,如何检测html属性何时更改

Ton*_*nov 3 jquery events attributes listener

我需要为select标记创建一个事件监听器.它应该在元素变为disabled或时触发enabled.

这甚至可能吗?

PS:onchange没有检测到禁用.

Ola*_*kin 9

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)


Ani*_*nil 3

可以使用这个 jquery.watch插件。

http://darcyclarke.me/development/detect-attribute-changes-with-jquery/

该插件检测 css 更改,但我在此 JSfiddle中对其进行了编辑以处理属性。

看看这个 JSfiddle。