在Ajax加载后在jQuery中加载自定义编写的函数

w
$(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>

但这似乎也不起作用。

有解决方案吗?

阿伦·P·约翰尼(Arun P Johny)

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

解决方案是将其声明为全局函数,就像您还要从其他上下文中调用该函数一样。它不会在dom ready回调中调用该函数时产生与dom ready状态相关的问题。

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'));

    });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章