首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FacetWP中断jQuery事件

FacetWP中断jQuery事件
EN

WordPress Development用户
提问于 2022-07-27 14:43:53
回答 1查看 161关注 0票数 0

我遇到了一个与这个几乎相同的问题:我在.facetwp-template元素中排序的结果包含一个jQuery事件(一个在单击时切换的电子邮件地址),它在第一次加载结果时运行良好。当我单击结果的第二页时,它不再工作,控制台日志为空,但当我刷新页面时,它再次开始工作。

我知道这与FacetWP使用AJAX的方式有关,并且在没有实际重新加载页面的情况下刷新结果,我已经尝试了上面的链接上的变通方法,作为公认的答案,它可以工作,但是看起来很差劲,而且一点也不流畅。

这就是解决办法:

代码语言:javascript
复制
$('.facetwp-facet').click(function() {
      setTimeout(function() {
        location.reload();
      },500);
  });

由于最初的问题是三年前发布的,我想知道是否有人从那以后学到了更好的方法来解决这个问题,或者我应该尝试一种不同的方法,或许放弃jQuery事件来显示电子邮件地址。不确定是否相关,但这是我针对上述事件的代码:

代码语言:javascript
复制
$( ".email" ).click(function() {
 var $this = $(this);
 $this.parent().toggleClass('open');
});

感谢任何人提供的任何帮助!

EN

回答 1

WordPress Development用户

发布于 2022-07-27 15:26:59

好的,为了回答我自己的问题,我只需要重写函数并使用.on(),因为它会监听DOM中的更改。如下所示:

代码语言:javascript
复制
$(document).on( 'click', '.email', function() {
  var $this = $(this);
  $this.parent().toggleClass('open');
});

受这篇文档的启发:https://facetwp.com/use-jquery-on-instead-of-click/

票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/408046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档