我想要一种(最好是纯javascript,但jquery也可以)在从按钮中删除disabled="disabled"属性时运行函数的方法。
发布于 2016-08-10 16:30:46
MutationObserver应用编程接口允许您监视元素上的更改。
var btnElement = document.getElementById("buttonId");
var observer = new MutationObserver(observerChanges);
observer.observe(btnElement, {
attributes: true,
subtree: opt.watchChildren,
childList: opt.watchChildren,
characterData: true
});
/// when you're done observing
observer.disconnect();
function observerChanges(mutationRecord, mutationObserver) {
console.log(mutationRecord);
}发布于 2016-08-10 16:21:44
您可以通过实现MutationObserver来获得DOM更改的通知。
var observer = new MutationObserver(function(mutations) {
if(mutations.some(function(m) { return m.attributeName == 'disabled' && !m.target.disabled; }))
{
alert('Button was enabled');
}
});
observer.observe(targetButton, { attributes: true, childList: false, characterData: false });发布于 2016-08-10 16:17:24
您可以使用Object.prototype.watch()。它只在火狐中受支持,但在here's a polyfill中
HTML:
<button id="myButton" disabled="disabled">Click</button>JavaScript:
var myButton = document.getElementById('myButton');
myButton.watch("disabled", function() {
console.log("myButton changed!");
});
myButton.disabled = false; // "myButton changed" will be loggedJSFiddle:https://jsfiddle.net/6ofvutwh/1/
更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global
https://stackoverflow.com/questions/38867679
复制相似问题