Javascript jQuery-在.load()完成并更新DOM后运行函数
我试图在用户单击菜单时加载到DOM中的对象上运行函数。以下是我代码的一部分:Javascript jQuery-在.load()完成并更新DOM后运行函数,javascript,jquery,html,Javascript,Jquery,Html,我试图在用户单击菜单时加载到DOM中的对象上运行函数。以下是我代码的一部分: $('#menu li a').click(function(){ var toLoad = $(this).attr('href'); //... var $newItem = $('<li></li>').appendTo($(columns).first()); loadContent(
$('#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;
});
$('#菜单li a')。单击(函数(){
var toLoad=$(this.attr('href');
//...
var$newItem=$(').appendTo($(columns.first());
loadContent();
函数loadContent(){
$newItem.load(toLoad,runScript());
}
函数runScript(){
//请参阅IE9调试器中的代码
警报($newItem.get(0.outerHTML);
对象doWidget($newItem.get(0));
}
返回false;
});
问题是,当我单击菜单项时,上述代码中的alert
功能会在加载前显示代码:
,而不是从对象本身加载的元素,因此脚本会更改旧对象,而新对象会覆盖其内容。(就像我从未运行过脚本一样)。我假设回退函数应该实现返回加载的对象。我怎样才能得到那个东西?谢谢 传递对runScript
的引用,而不是执行函数的结果:
$newItem.load(toLoad, runScript);
传递对runScript
的引用,而不是执行函数的结果:
$newItem.load(toLoad, runScript);
天啊!!我简直不敢相信自己:谢谢。我被困了一天。非常感谢;)@阿利雷扎诺里:没问题,有时候只需要一双眼睛就可以了。
:)
天哪!!我简直不敢相信自己:谢谢。我被困了一天。非常感谢;)@AlirezaNoori:没问题,有时候只需要另一双眼睛就可以了:)