我正在尝试在用户点击菜单时在加载到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>
而不是来自对象本身的加载元素因此脚本更改旧对象,新对象将覆盖其内容。 (就像我从未运行过剧本一样)。我假设回退函数应该实现返回加载的对象。我怎样才能得到那个对象?谢谢。
答案 0 :(得分:5)
将引用传递给runScript
而不是执行该函数的结果:
$newItem.load(toLoad, runScript);