我有这个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文件时委托了我需要工作的所有函数。
谢谢大家的帮助。
答案 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);
});
});