Javascript 如何将单击事件添加到Elementor中的弹出窗口?

Javascript 如何将单击事件添加到Elementor中的弹出窗口?,javascript,wordpress,popup,elementor,Javascript,Wordpress,Popup,Elementor,使用WordPress和Elementor页面生成器,我创建了一个navmenu弹出式模板。我希望在单击包含子菜单的菜单项时淡入子菜单项并隐藏菜单 当我向弹出窗口添加JavaScript代码(使用附加组件)时,eventlistener函数不起作用,但我的代码工作正常。我在简单的页面中使用它,但不在弹出窗口中使用它;我尝试了(自定义CSS和JS)插件,但也没有成功。这是Elementor中的一个bug还是AddEventListener不能以通常的方式为弹出窗口中的元素工作 代码: const

使用WordPress和Elementor页面生成器,我创建了一个navmenu弹出式模板。我希望在单击包含子菜单的菜单项时淡入子菜单项并隐藏菜单

当我向弹出窗口添加JavaScript代码(使用附加组件)时,eventlistener函数不起作用,但我的代码工作正常。我在简单的页面中使用它,但不在弹出窗口中使用它;我尝试了(自定义CSS和JS)插件,但也没有成功。这是Elementor中的一个bug还是AddEventListener不能以通常的方式为弹出窗口中的元素工作

代码:

const element = document.querySelector('.element');

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

element.addEventListener('click', function(){
    any code in here <---------------------------------------not working !
});
const-element=document.querySelector('.element');
console.log(元素);<------------------------------这里正在工作!!!
元素。addEventListener('click',function(){

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

使用wordpress,您可以使用jQuery而不是纯javascript。因此,您可以使用
。单击
。使用另一种方法来实现您的目标可能值得一试:

( function( $ ) {
    $(document).ready(function () {
      $(".element").click(function (e) {
        e.preventDefault();
        // any code here
      });
    });
}( jQuery ) );
以下是更多信息:

但如果您喜欢使用纯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
    });
  }
};
window.onload=函数(){
element=document.querySelectorAll(“.element”);
对于(变量i=0;i
“querySelector”在类为“element”的第一个元素处停止。检查您的元素是否是类为“element”的第一个元素。如果不是,请尝试改用ID。例如:const element=document.getElementById(“我的ID”)。