gpt4 book ai didi

javascript - 如何使用 jquery 检测下拉列表中的选项内容变化?

转载 作者:行者123 更新时间:2023-11-30 09:44:33 26 4
gpt4 key购买 nike

我有一个下拉字段,其中的选项将动态更改。每当下拉列表中的选项集发生变化时,有没有办法捕获事件?

我不想捕获选项更改即

$(".dropdown").on("contentChange", function(){
//do something
})

相反,当下拉列表中的选项集被修改时,我想捕获事件。我如何附加一个处理程序,它会在选项集更改时获得触发函数。

最佳答案

可以观察 DOM 的变化,在新的 DOM 规范中我们有 MutationObserver 来观察 DOM。工作实例

MutationObserver = window.MutationObserver || window.WebKitMutationObserver;

//create observer
var observer = new MutationObserver(function(mutations, observer) {

console.log("Options have been changed");

});

//set to observe childs ( options )
observer.observe(document.querySelector(".dropdown"), {
subtree: true,
childList:true,
attributes:true
});

//test change
$('button').on("click",function(){

$(".dropdown").prepend("<option>New added option</option>");

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="dropdown">
<option>First</option>
<option>Second</option>
<option>Third</option>
<option>Fourth</option>
</select>
<button>Test button options change</button>

您还可以使用事件 DOMSubtreeModified。事件在主要浏览器上有效,但 DEPRECATED 。工作示例:

//add event    
$(".dropdown").on("DOMSubtreeModified", function(e){

console.log('Options have been changed');

});

//change option example after button click
$('button').on("click",function(){

$(".dropdown").prepend("<option>New added option</option>");

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="dropdown">
<option>First</option>
<option>Second</option>
<option>Third</option>
<option>Fourth</option>
</select>
<button>Test button options change</button>

我在单击按钮后添加了一些示例选项修改。 select 内的任何 DOM 更改都会调用事件。

关于javascript - 如何使用 jquery 检测下拉列表中的选项内容变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39445288/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com