2

程式!我在网站上找到了类似问题的解决方案,例如我的问题,但发生在我身上的事情相当不寻常,我认为它们不适用。

在此页面上: http: //tdg.gswitchhost.com/calendar/

我被锁定在使用这个我真的不关心的插件。这是一个 Wordpress 站点,但列出即将发生的事件的插件的行为与 Wordpress 不同。它有这个完全独特的系统。帖子位于帖子数据库表之外,您必须以完全不同的方式查询它们。这是一个无赖。所以我的问题:

我们有一些 jquery 在事件列表中使用它的魔法来添加手风琴效果,这很有效。然而。当您单击分页链接以加载下一组事件时,插件不会链接到事件的第 2 页,而是运行异步查询并将下一组事件加载到现有页面上,而无需重新加载页面。如果您单击其中一项新事件,则手风琴将不再起作用。

认为正在发生的事情是,在点击时,插件会删除包含事件的整个 UL,并加载第二个全新的,包含第二个记录集,具有相同的类名,但由于 javascript 在第一个 UL 上初始化,一个插件被删除,新的设置没有受到影响,因为页面没有重新加载并再次运行 javascript。

当您单击分页链接时,我尝试使用 .on() 和 Livequery 插件重新运行 javascript,但是由于查询正在运行并加载新的 UL,所以会出现延迟,因此我相信当您单击时,javascript 会再次运行链接,但由于单击时尚未加载 UL,因此 jquery 没有什么可以处理的。

对不起,这太长了,但我只想尽可能清楚。我错了吗?这让我很生气,我的时间不多了,我真的需要让它工作,这样无论页面上加载了哪组事件,手风琴功能都可以工作。

这是初始化手风琴的javascript:

$('.eventListingNew').accordion({
    headerClassName: 'accordionHeader',
    headerActiveClassName: 'accordionHeader-active',
    contentClassName: 'accordionContent',
    collapseAll: false,
    speed: 250
});

这是整个手风琴功能的粘贴箱,因为它很长。http://pastebin.com/BvDseg3g

4

1 回答 1

2

简单的事情就是在 Ajax 完成运行以重新初始化它时调用它。

$(document).ajaxComplete(function(event, xhr, settings) {

    $('.eventListingNew').accordion({
        headerClassName: 'accordionHeader',
        headerActiveClassName: 'accordionHeader-active',
        contentClassName: 'accordionContent',
        collapseAll: false,
        speed: 250
    });

});
于 2013-02-25T14:47:00.177 回答