检测 select 的所有选项何时更改
Detect when all options of a select have changed
有没有办法检测 select 中所有选项的属性何时发生变化?
例如
<select id="languages">
<option value="en">English<option>
<option value="fr">French<option>
<option value="de">German<option>
...
</select>
第三方插件将添加(第一次)或更改(第二次+时间)lang 属性,因此它将变为:
<select id="languages">
<option value="en" lang="fr">Anglais<option>
<option value="fr" lang="fr">Français<option>
<option value="de" lang="fr">Allemand<option>
...
</select>
所以我想 watch/detect 当所有选项的属性都改变时,我可以调用我的函数。我认为 mutationobserver 可以是方法,但我无法使其工作。
我刚刚弄明白了,如果以后有人需要的话:
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log('Do your thing');
});
});
var observerConfig = {
attributes: true,
attributeFilter: ['lang'],
subtree: true
};
var target = document.querySelector('.languages');
observer.observe(target, observerConfig);
有没有办法检测 select 中所有选项的属性何时发生变化? 例如
<select id="languages">
<option value="en">English<option>
<option value="fr">French<option>
<option value="de">German<option>
...
</select>
第三方插件将添加(第一次)或更改(第二次+时间)lang 属性,因此它将变为:
<select id="languages">
<option value="en" lang="fr">Anglais<option>
<option value="fr" lang="fr">Français<option>
<option value="de" lang="fr">Allemand<option>
...
</select>
所以我想 watch/detect 当所有选项的属性都改变时,我可以调用我的函数。我认为 mutationobserver 可以是方法,但我无法使其工作。
我刚刚弄明白了,如果以后有人需要的话:
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log('Do your thing');
});
});
var observerConfig = {
attributes: true,
attributeFilter: ['lang'],
subtree: true
};
var target = document.querySelector('.languages');
observer.observe(target, observerConfig);