我知道没有这样的事件,但是我可以使用类似的东西吗?
我有 ASP.NET 用户控件,它们动态加载到容器中,效果非常流畅。
这样做的缺点是我想在控件完成加载时运行一些客户端 javascript,但我不知道如何。
我花了一段时间才弄清楚为什么我的 jQuery 脚本没有运行,然后我意识到它们只是在运行,$(document).ready()
而且只有在整个页面加载时才会发生!(呃!)
谁能想到这样做的方法?
谢谢 :)
现在变得更复杂了!
我正在尝试使用 DOM Mutation Observer 来观察容器,以便在它发生变化时运行脚本。
但我收到一个错误:An attempt was made to reference a Node in a context where it does not exist.
DOM 元素确实存在,但我不确定我是否正确理解了错误。
这是我的观察者代码:
$(document).ready(function () {
// select the target node
var target = $('#contentPanel');
if (typeof (target) != 'undefined') {
// create an observer instance
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
console.log(mutation.type);
if (mutation.addedNodes) {
alert('New nodes');
}
//rememberMe();
})
});
// configuration of the observer:
var config = { attributes: false, childList: true, characterData: true }
// pass in the target node, as well as the observer options
observer.observe(target, config); // <== error occurs here
}
});
最终的观察者代码:
$(document).ready(function () {
// select the target node
var target = $('#contentPanel');
if (typeof (target) != 'undefined') {
// create an observer instance
var observer = new MutationObserver(function (mutations) {
var doRememberMe = false;
mutations.forEach(function (mutation) {
if (mutation.addedNodes) {
doRememberMe = true;
}
})
if (doRememberMe) rememberMe();
});
// configuration of the observer:
var config = { attributes: false, childList: true, characterData: true }
// pass in the target node, as well as the observer options
//observer.observe(target, config);
observer.observe(document.body, config); // <== apply observer to whole document! (could be done nicer)
}
});