Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-在.load()完成并更新DOM后运行函数_Javascript_Jquery_Html - Fatal编程技术网

Javascript jQuery-在.load()完成并更新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(

我试图在用户单击菜单时加载到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;
        });
$('#菜单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:没问题,有时候只需要另一双眼睛就可以了
    :)