调用/使用.js文件的问题(jquery函数)

时间:2011-07-20 16:58:57

标签: jquery

我有这个jq函数在div中打开一个链接:

$(document).ready(function() {
    $('#all').delegate('a', 'click' (function() {
        $('#content').empty();
        var page = $(this).attr("id");
        $('#content').load("scripts/loop_a.php?page=" + page);
    });
});

我在index.php的head标签内调用它,并且正在处理我的header_template.php中的所有链接

如果我在main_body div中加载一个new.php页面并且里面有一个链接,那么该链接对我的脚本不起作用(基本上我的new.php页面看不到我的.js文件)。

有没有办法让我只通过在index.php中调用.js文件来打开任何新的.php文件?

谢谢

编辑...找到解决方案......我编写了上面的脚本。

在我使用的index.php中,包括发生的所有事情。 所以我只选择了div,并且在加载/打开new.php文件时委托了我需要工作的所有函数。

谢谢大家的帮助。

3 个答案:

答案 0 :(得分:0)

通过ajax注入的元素需要将事件处理程序重新绑定到它们,或者事件处理程序委派到合适的父/容器:

$('#content').delegate("a", "click", function(e) { 
    e.preventDefault(); // perhaps you need this?
    $('#content').empty();
    var page = $(this).attr("id");
    $('#content').load("scripts/loop_a.php?page="+ page);      
}); 

请参阅:

注意:如果你正在使用<在jQuery 1.4.2中,您需要使用.live代替。

答案 1 :(得分:0)

您可能需要live event

$(document).ready(function() {
    $('.trgt_div > a').live('click', function() {
        $('#content').empty();
        var page = $(this).attr("id");
        $('#content').load("scripts/loop_a.php?page=" + page);
    });
});

希望有所帮助

答案 2 :(得分:0)

$(document).ready(function() { 
    $('#all').delegate('a', 'click' (function() { 
        $('#content').empty(); 
        var page = $(this).attr("id"); 
        $('#content').load("scripts/loop_a.php?page=" + page); 
    }); 
});