当从按钮中删除disabled="disabled"
属性时,我想要一个(最好是纯javascript但jquery也可接受)运行函数的方法。
答案 0 :(得分:2)
您可以通过实施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 });
答案 1 :(得分:1)
您可以使用Object.prototype.watch()
。它仅在Firefox中受支持,但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 logged
JSFiddle:https://jsfiddle.net/6ofvutwh/1/
更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/watch
答案 2 :(得分:1)
MutationObserver API允许您监视元素的元素变化。
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);
}
答案 3 :(得分:0)
您能否告诉我们您如何删除残疾人的代码?但这是我头脑中的一个例子。
<button class="class" id="btn1" disabled>
function remove_disable()
{
document.getElementById('btn1').disabled = false;
function2();
}
然后是function2
function function2()
{
//somecode
}
在这里,当我们调用remove_disable时,我们删除按钮上的禁用功能,然后运行另一个功能。
希望这会有所帮助
答案 4 :(得分:0)
如果您可以控制何时完成此更改,则最简单的回调函数将是最简单的解决方案。
否则,您可以使用Mutation Observers来监视输入上的禁用属性何时更改。