jQuery Ajax:使用$ .get请求内容

时间:2013-07-07 13:01:21

标签: jquery ajax

为了避免在点击内部链接时完全重新加载网页,我正在使用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中的一些类似链接(因此它们不会被重新生成)也使用此点击功能,没有问题。

有人可以帮忙吗?

1 个答案:

答案 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);
    });
});
相关问题