jQuery对象禁用事件监听器,如何检测html属性何时发生变化

标签 jquery events attributes listener

我需要为 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/

相关文章:

javascript - 使用 jQuery .animate() 时的图像动画问题

c# - Active Directory 中的过滤器更改通知 : Create, 删除、取消删除

javascript - Webkit 过渡事件

c# - 从处理指令行读取 XML 属性

javascript - 加载特定脚本后如何显示某些内容?

javascript - 从ajax响应返回数据

python - 向不可变类型子类添加属性

ruby-on-rails - 只允许属性的特定词

jquery - 如何使用 jQuery 创建动态交互式图像 map ?

c# - "Ghost"WinForms 中的 MouseMove 事件