Ajax调用后Javascript没有执行

时间:2014-02-03 19:29:15

标签: php jquery ajax wordpress

我知道这已经被问了很多,但是我已经在这些帖子中拖了几个小时了,没有任何作用。

我正在使用Wordpress博客,其中单个帖子页面上的上一个/下一个按钮必须加载Ajax的上一个/下一个帖子。我编写代码(jQuery Ajax)都很好(我想 - 如果你想改进它,做我的客人!),但在每个帖子中都有一些需要工作的jQuery。但是,在我点击上一个/下一个按钮之间在帖子之间移动之后,jQuery将无法工作(当首次加载页面时,它完全可以正常工作)。我知道这是因为内容没有与JS“连接”了,但我不知道该怎么办。

这是我的代码:

$(".page-feed").on('click', '.post-nav>a', function() {
    event.preventDefault ? event.preventDefault() : event.returnValue = false;
    var link = $(this).attr('href'); // get the value of the href attribute on the links
    $(".post-content").html("Loading...");
    $.get(link, function(result) {
        $result = $(result);
        $content = $result.find(".post-content");
        $(".post-content").replaceWith($content);
    }, 'html');
});

我知道你可能会问我已经尝试过的东西,但如果我是诚实的,那么这里就不值得投入。

上面的代码位于一个名为script.js的文件的顶部,其下面有所有其他JS(在Ajax调用之后它当前不起作用)。该脚本由标准$(document).ready(function() {语句启动。

感谢您的帮助:)

1 个答案:

答案 0 :(得分:2)

首先,您需要接受事件对象作为参数。

$(".page-feed").on('click', '.post-nav>a', function(event) {

接下来,通过使用jQuery事件对象,您可以简化下一行,因为event由jQuery规范化以跨浏览器工作。

event.preventDefault();

现在,只要它处理第一次点击而不是之后,这可能是因为.page-feed是一个动态元素。您需要选择一个.post-content祖先的元素。 document是一个不错的替代品,但如果再挑选一个本地的话会更好。

$(document).on('click', '.post-nav>a', function(event) {