1

为了避免在点击内部链接时完全重新加载网页,我使用的是 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)它工作正常,第二次点击函数根本没有被调用。

home.php 中的一些类似链接(因此它们不会重新生成)也使用此单击功能,它们没有问题。

有人可以帮忙吗?

4

1 回答 1

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);
    });
});
于 2013-07-07T13:05:34.593 回答