0
$(document).ready(function(){
    function loadURL(url){
        $('#ajax').load(url, function(){
            history.pushState('', 'My Website', baseurl + url);
        });
    }

    $(document).on('click', 'a[rel!=external]', function(event){
        event.preventDefault(); 
        loadURL($(this).attr('href'));

    });
});

你好再次stackoverflow!

我有一些通过 AJAX 加载的内容。现在我想加载link.html,其中包含这段代码:

<script>
    loadURL('code.txt');
</script>

这样加载后link.html直接加载code.txt

可悲的是,调用内部创建的函数$(document).ready()似乎不起作用,因为它由于某种原因未定义。所以我尝试了

<script>
    $(document).ready(function(){
        loadURL('code.txt');
    });
</script>

但这似乎也不起作用。

有解决方案吗?

4

1 回答 1

0

这是因为由于该函数loadURL是在另一个函数中声明的,所以声明的函数是容器函数的私有函数。

解决方案是将其声明为全局函数,因为您也想从其他上下文中调用该函数。它不会产生与 dom 就绪状态相关的问题,因为该函数是在 dom 就绪回调中调用的。

function loadURL(url){
    $('#ajax').load(url, function(){
        history.pushState('', 'My Website', baseurl + url);
    });
}
$(document).ready(function(){
    $(document).on('click', 'a[rel!=external]', function(event){
        event.preventDefault(); 
        loadURL($(this).attr('href'));

    });
});
于 2013-10-19T14:49:12.407 回答