Javascript EventListener的e.preventDefault();不适用于内部页面href=“hash”链接

Javascript EventListener的e.preventDefault();不适用于内部页面href=“hash”链接,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,我目前正在建立一个WordPress网站,并试图阻止内部页面链接被触发。我使用的代码部分是: var numberLinks = Array.from( document.querySelectorAll('.benefits-links .inner-nav-link > .number-link ')); numberLinks.forEach( function (link) { link.addEventListener('click' , numb

我目前正在建立一个WordPress网站,并试图阻止内部页面链接被触发。我使用的代码部分是:

   var numberLinks = Array.from( document.querySelectorAll('.benefits-links .inner-nav-link > .number-link '));

    numberLinks.forEach( function (link) {
        link.addEventListener('click' , numberClick)
    })

    function numberClick(e) {       
            e.preventDefault();
            console.log(e);
    }


谢谢

试试下面的代码,它会起作用的:

numberLinks.forEach( function (link) {

    link.addEventListener('mouseenter',function(e){
        var myLink = e.currentTarget;
        myLink.khref = myLink.href;
        myLink.href = "#";
    });
    link.addEventListener('mouseout',function(e){
        var myLink = e.currentTarget;
        myLink.href = myLink.khref        
    });
});
嗨,我是这样做的

对于我不想触发的所有元素,我都使用一个特定的类

var numberLinks=document.querySelectorAll'.benefits links'; console.lognumberLinks; numberLinks.forEach函数链接{ link.addEventListener'click',e=>{ e、 防止违约; 除了口袋妖怪,任何东西都会触发; 返回错误 } } .利益联系{ 颜色:红色; }
为了做出贡献,诀窍在于添加:

e.preventDefault();
e.stopPropagation();

显然,某个相关元素触发了链接

您是否放置了JS代码,使其在DOM中存在该元素后运行?不确定,我想是的。。。元素存在,但高度为0,稍后获取高度:auto。另外,我认为它是存在的,因为控制台记录了事件。我使用console.log测试了numberClick函数的执行情况。这并没有解决问题中的问题,并且为非鼠标用户引入了可访问性问题。哦,你没有提到,对于非鼠标用户,还有另一种解决方案,但我已经投了反对票!啊!你的其他解决方案也不能解决问题吗?嘿,斯坦,我添加了一个特定于类的选择器,但是.number链接仍然指向hrefsection@GiannisDallas记录存储数据的变量