Waypoint和Inview jquery。如何修复DOM问题

时间:2016-05-27 01:05:22

标签: javascript jquery wordpress jquery-waypoints

我试图自定义一个名为wp post listing的wordpress插件。我想针对包含更多按钮的#basic-waypoint-cyberwrath,因为插件没有自动化。它需要手动点击我不喜欢的加载更多按钮。

这是我迄今为止获得的代码:

var inview = new Waypoint.Inview({
    element : $('#basic-waypoint-cyberwrath')[0],
    enter : function(direction) {
        //alert('Enter triggered with direction ' + direction)
    },
    entered : function(direction) {
        //alert('Entered triggered with direction ' + direction)
        $('.wpp_loadmore_pager').click();
    },
    exit : function(direction) {
        //alert('Exit triggered with direction ' + direction)
    },
    exited : function(direction) {
        //alert('Exited triggered with direction ' + direction)
    }
});

当我使用警报功能时。无论我滚动到ID多少次,它都会在inview中发出警报。它不断触发警报功能。但是当我使用点击功能时。它只会触发一次,因为每次单击“加载更多”按钮时,#basic-waypoint-cyberwrath都是新动态加载的。这是我到目前为止最接近的代码。

这是我到目前为止获得的航点代码:

var $fusionheader = $('#basic-waypoint-cyberwrath');
$fusionheader.waypoint(function(direction) {
    if (direction === 'down') {
        // do stuff
        //alert('I am going down');
        $('.wpp_loadmore_pager').click();
    }
    jQuery.waypoints('refresh');
}, {
    offset : '90%'
});

我已经尝试了几乎所有的东西。我不知道我在这里失踪了什么。 当第一次向下滚动时两者都很好,然后当它看到#basic-waypoint-cyberwrath时触发,但它不会再触发第2轮,依此类推加载更多按钮以查看其他帖子列表。

我甚至尝试过for循环语句,但仍然没有运气:

var discreteElements = document.getElementById('basic-waypoint-cyberwrath');
for (var i = 0; i < discreteElements.length; i++) {
    new Waypoint.Inview({
        element : this,
        enter : function(direction) {
        },
        entered : function(direction) {
            //animatelettering.textillate('in')
            $('.wpp_loadmore_pager').click();
        },
        exit : function(direction) {
            //animatelettering.textillate('out')
        },
        exited : function(direction) {
        }
    });
};

请帮忙。

1 个答案:

答案 0 :(得分:0)

您需要跟踪实际导致加载这些帖子的内容(可能是一个函数),并将处理程序重新附加到那里的click事件。您可以使用

完成此操作
$(".container").on("click", ".wpp_loadmore_pager", function() {
    //load_function();
});

很可能.wpp_loadmore_pager在某处附加了一个点击事件,并且它正在运行某些功能(load_posts(),get_posts()等)。在该功能中,您可能会看到重新创建该按钮的代码。这是您需要重新连接处理程序的地方。