Javascript EventListener的e.preventDefault();不适用于内部页面href=“hash”链接
我目前正在建立一个WordPress网站,并试图阻止内部页面链接被触发。我使用的代码部分是: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
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记录存储数据的变量