首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Elementor中将单击事件添加到弹出窗口?

问如何在Elementor中将单击事件添加到弹出窗口?
EN

Stack Overflow用户
提问于 2020-10-17 05:53:20
回答 1查看 1.1K关注 0票数 0

使用WordPress和Elementor页面构建器,我创建了一个导航菜单弹出模板。我想要淡入子菜单项,并在单击带有子菜单的菜单项时隐藏菜单。

当我将JavaScript代码添加到弹出窗口(使用附加组件)时,eventlistener函数不起作用,但我的代码运行良好。我在简单的页面中使用它,但不是在弹出窗口本身中;我尝试了(自定义CSS和JS)插件,它也不起作用。是Elementor中的bug,还是无法以通常的方式为弹出窗口中的元素添加侦听器?

代码:

代码语言:javascript
复制
const element = document.querySelector('.element');

console.log(element);  < ------------------------------here is working!!!

element.addEventListener('click', function(){
    any code in here <---------------------------------------not working !
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-17 18:04:25

我认为问题可能出在您正在使用querySelector。它返回文档中与指定选择器或选择器组匹配的第一个元素。

使用wordpress,你可以使用jQuery而不是纯javascript。因此,您可以使用.click。也许值得尝试使用另一种方法来实现您想要的:

代码语言:javascript
复制
( function( $ ) {
    $(document).ready(function () {
      $(".element").click(function (e) {
        e.preventDefault();
        // any code here
      });
    });
}( jQuery ) );

以下是更多信息:https://api.jquery.com/click/

但是如果你喜欢使用纯javascript,你可以像这样使用for每一个元素:

代码语言:javascript
复制
window.onload = function () {
  element = document.querySelectorAll(".element");
  for (var i = 0; i < element.length; i++) {
    element[i].addEventListener("click", function (e) {
        e.preventDefault();
        // any code here
    });
  }
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64396846

复制
相关文章

相似问题

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