【发布时间】:2017-03-01 11:21:55
【问题描述】:
我正在尝试重写以下 Mutation Observer 代码:
var target = document.querySelector('div#cart');
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log(mutation.type);
});
});
var config = { childList: true, attributes: true, characterData: true, subtree: true };
observer.observe(target, config);
进入下面的脚本:
var target = document.querySelector('div#cart'), observer, moCallback, config;
moCallback = function(mutations) {
mutations.forEach( mutation ) {
console.log(mutation.type);
}
};
var array = moCallback;
observer = new MutationObserver( array );
config = { childList: true, attributes: true, characterData: true, subtree: true };
observer.observe(target, config);
第二个脚本对我来说更容易阅读,因为它没有嵌入的回调函数;但是,我无法让它工作。
如何使用外部回调函数而不是内联匿名函数重写我的 Mutation Observer?
【问题讨论】:
-
您的 forEach 在您的第二个脚本中搞砸了,更改它以使其与 script1 中的相匹配。
-
我更新了 forEach() 循环,但语法仍然混乱。可以通过外部回调调用 Mutation Observer 吗?如果是,我还没有在网上找到可以遵循的示例。
-
回调函数不需要内联定义。
标签: javascript callback mutation-observers