如何在元素被禁用或启用时进行侦听

时间:2016-10-24 23:55:49

标签: javascript events javascript-events disabled-control disabled-input

我希望在禁用输入或字段集时对附近的元素进行更改。是否有一个事件可以侦听何时启用或禁用某个元素?例如:

var input = document.createElement('input')

我正在寻找一个可以通过切换禁用状态来触发的事件:

input.disabled = !input.disabled

1 个答案:

答案 0 :(得分:4)

您可以使用MutationObserver attributes设置为true配置对象。

var input = document.createElement("input");

var observer = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    if (mutation.attributeName === "disabled") {
      console.log(`${mutation.target.tagName}.disabled:`
                 , `${mutation.target[mutation.attributeName]}`)
    }
  });
});

observer.observe(input, {
  attributes: true
});

input.disabled = !(input.disabled); // true

setTimeout(function() {
  input.disabled = !(input.disabled); // false
});