Javascript 禁用使用jquery选择元素
我有一个函数,它使用下面的代码行简单地禁用所有Javascript 禁用使用jquery选择元素,javascript,jquery,Javascript,Jquery,我有一个函数,它使用下面的代码行简单地禁用所有select元素 $('select').prop('disabled', true); 但是,它适用于DOM中已经存在的所有select元素。有几个地方使用javascript/jquery添加select元素。上面的代码行并没有禁用这些元素。解决问题的一种方法是,每次将select元素添加到DOM中时,都调用特定的插件,但这将是大量的工作和需要 有没有更好的方法来禁用所有这些选择元素?您可以尝试以下操作: $('body').on('DOMNo
select
元素
$('select').prop('disabled', true);
但是,它适用于DOM中已经存在的所有select元素。有几个地方使用javascript/jquery添加select
元素。上面的代码行并没有禁用这些元素。解决问题的一种方法是,每次将select
元素添加到DOM中时,都调用特定的插件,但这将是大量的工作和需要
有没有更好的方法来禁用所有这些选择元素?您可以尝试以下操作:
$('body').on('DOMNodeInserted', 'select', function () {
$(this).prop('disabled', true);
});
编辑:似乎已弃用domandeinserted。所以你应该使用
<a id="myBtn" href="#">Insert select</a>
<script src="/Scripts/jquery-1.8.2.min.js"></script>
<script src="/Scripts/jquery.validate.min.js"></script>
<script>
$(function() {
$("#myBtn").click(function() {
$("body").prepend("<select></select>");
});
$(document).on('DOMNodeInserted', function(e) {
if (e.target.tagName === "SELECT") {
console.log("doing stuff!");
}
});
});
</script>
如果您需要IE9/10支持,可以查看
<a id="myBtn" href="#">Insert select</a>
<script src="/Scripts/jquery-1.8.2.min.js"></script>
<script src="/Scripts/jquery.validate.min.js"></script>
<script>
$(function() {
$("#myBtn").click(function() {
$("body").prepend("<select></select>");
});
$(document).on('DOMNodeInserted', function(e) {
if (e.target.tagName === "SELECT") {
console.log("doing stuff!");
}
});
});
</script>
$(函数(){
$(“#myBtn”)。单击(函数(){
$(“正文”)。前缀(“”);
});
$(文档).on('DOMNodeInserted',函数(e){
如果(e.target.tagName==“选择”){
log(“做事!”);
}
});
});
您需要这个
$(document).on('DOMSubtreeModified', 'select', function () {
$(this).prop('disabled', true);
});
您可以在创建时简单地添加
disabled
属性。同样,我必须遍历整个应用程序才能找到这些情况。我需要一个更好的方法来实现这一点,我不必遍历并查找这些位置,也不必添加禁用的属性。DOMNodeInserted似乎不赞成您的说法,请尝试使用MutationObserver:我已经在查看它,但浏览器兼容性是一个b it问题。我至少需要支持IE 9.DOMNodeInserted已被弃用