我正在尝试在用户单击菜单时加载到 DOM 中的对象上运行一个函数。这是我的部分代码:
$('#menu li a').click(function(){
var toLoad = $(this).attr('href');
//...
var $newItem = $('<li></li>').appendTo($(columns).first());
loadContent();
function loadContent() {
$newItem.load(toLoad, runScript());
}
function runScript() {
//see the code in IE9's debugger
alert($newItem.get(0).outerHTML);
obj.doWidget($newItem.get(0));
}
return false;
});
问题是,当我单击菜单项时,alert
上面代码中的函数,显示加载前的代码:<li></li>
而不是从对象本身加载的元素,因此脚本会更改旧对象,而新对象会覆盖其内容。 (就像我从未运行过脚本一样)。我假设回退函数应该实现返回加载的对象。我怎样才能得到那个对象?谢谢。
最佳答案
将 reference 传递给 runScript
而不是执行函数的结果:
$newItem.load(toLoad, runScript);
关于javascript - jQuery - 在 .load() 完成并且 DOM 更新后运行一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8105913/