我想知道一种使用动态添加的html按钮Jquery来禁用和取消禁用的方法。
我知道.on()函数,但是为了工作,这个函数需要和事件来监听(比如点击或其他东西)而且我没有任何事件要绑定因为我正在从一个函数中调用它。
这是实际的代码,它没有工作,导致按钮带有" #myID"是文件ready()之后动态注入的部分:
var validateForm = function(){
if(exp_valid && cc_valid && ch_valid && cvn_valid){
$('#myID').prop('disabled', false);
}
}
我想要一个正确的方法来选择,没有任何事件,我的动态添加按钮。
感谢您的阅读。
答案 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);
感谢大家的时间。