启用按钮时运行javascript函数

时间:2016-08-10 08:10:54

标签: javascript jquery dom

当从按钮中删除disabled="disabled"属性时,我想要一个(最好是纯javascript但jquery也可接受)运行函数的方法。

5 个答案:

答案 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 });

Demo

答案 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来监视输入上的禁用属性何时更改。