为了避免在点击内部链接时完全重新加载网页,我正在使用jQuery和AJAX。
$(".ajax").click(function(e){
e.preventDefault(); // do not follow link
var requestPage = "content.php?" + jQuery(this).attr('href').split("?")[1];
$.get(requestPage, function(data){
$("#content").html(data);
});
});
其中一些链接是由content.php生成的,类似于
<li><a class="ajax" href="home.php?x=1&y=A" title="Link A">Link A</a></li>
<li><a class="ajax" href="home.php?x=1&y=B" title="Link B">Link B</a></li>
<li><a class="ajax" href="home.php?x=1&y=C" title="Link B">Link C</a></li>
现在我的问题是,第一次刷新页面后(使用F5)它工作正常,第二次没有调用click函数。
home.php中的一些类似链接(因此它们不会被重新生成)也使用此点击功能,没有问题。
有人可以帮忙吗?
答案 0 :(得分:1)
您无法将 click()等事件附加到动态加载的dom中。所以,它应该是on()事件委托。在旧版本的jQuery中,您可以使用 live()或 delegate()而不是 on() 。
$(document).on("click",".ajax",function(e){
e.preventDefault(); // do not follow link
var requestPage = "content.php?" + jQuery(this).attr('href').split("?")[1];
$.get(requestPage, function(data){
$("#content").html(data);
});
});