目标动态添加按钮与jquery(无事件)

时间:2016-10-14 15:35:28

标签: javascript jquery

我想知道一种使用动态添加的html按钮Jquery来禁用和取消禁用的方法。

我知道.on()函数,但是为了工作,这个函数需要和事件来监听(比如点击或其他东西)而且我没有任何事件要绑定因为我正在从一个函数中调用它。

这是实际的代码,它没有工作,导致按钮带有" #myID"是文件ready()之后动态注入的部分:

 var validateForm = function(){
    if(exp_valid && cc_valid && ch_valid && cvn_valid){
        $('#myID').prop('disabled', false);
    }
 }

我想要一个正确的方法来选择,没有任何事件,我的动态添加按钮。

感谢您的阅读。

3 个答案:

答案 0 :(得分:1)

您可以先检查按钮是否存在

if ($(#myID).length) {
  $('#myID').prop('disabled', false);
}

答案 1 :(得分:1)

您可以做的是设置MutationObserver以监视DOM元素的更改,这样您就可以在节点树中添加某些内容时触发新检查。

简化JS:

var observer = new MutationObserver(function() {
  // This is where you run your function
  $('#myID').attr("disabled", true);
  console.log($('#myID'));
});

observer.observe(document.documentElement, {
    childList: true,
    subtree: true            
});

我已将this demo放在一起,动态添加按钮,您可以再次运行您的功能以检查是否应禁用该功能。

本文中详细介绍了完整实现:​​http://ryanmorr.com/using-mutation-observers-to-watch-for-element-availability/

答案 2 :(得分:0)

我设法使用:

  $('#myID').attr("disabled", true);

感谢大家的时间。