javascript - jQuery:preventDefault() 不适用于 anchor 链接标记(尝试了很多方法!)

标签 javascript jquery html

我试图阻止 anchor 链接发送到另一个页面,但它实际上不起作用,我什至不知道为什么。我以前使用过preventDefault,每次都有效,但这次我不知道发生了什么。

是的,我在 stackoverflow 上看到过这个问题,并尝试了所有方法,但仍然不起作用

HTML 代码:

 <h2><a id="donta" href="/services.html">Eco Ideas</a></h2>

jQuery 代码:

$('#donta').on('click', function(event) {
            event.preventDefault();
            event.stopPropagation();

            alert(event.target.tagName);    //yes it alerts me 'A'

            if(event.isDefaultPrevented()){

                    alert('Prevented!');    //yes it shows this alert but still send me to that link

                    event.stopImmediatePropagation();
                    event.returnValue = false;
                }else{

                    // NOPE, it doesn't show this "ELSE" part...means the below alert doesn't show up...means according to browser or jQuery it is now PREVENTED

                    alert('Not prevented but trying to prevent now');
                    event.returnValue = false;
                }
            return false;
});

你可以看到我尝试了所有方法,但它仍然将我发送到那个该死的链接! 预先感谢,因为我知道你们会找到办法:)

最佳答案

链接上有很多事件监听器。其中 2 个正在监听 click 事件。似乎一个会阻止链接,而另一个则不会。

enter image description here

我认为这个函数可能有问题,因为它会触发:

function end(e) {
  clearTimeout(resetTimer);
  resetTimer = setTimeout(function() {
    w.tapHandling = false;
    cancel = false;
  }, 1000);

  // make sure no modifiers are present. thx http://www.jacklmoore.com/notes/click-events/
  if ((e.which && e.which > 1) || e.shiftKey || e.altKey || e.metaKey || e.ctrlKey) {
    return;
  }

  e.preventDefault();

  // this part prevents a double callback from touch and mouse on the same tap

  // if a scroll happened between touchstart and touchend
  if (cancel || w.tapHandling && w.tapHandling !== e.type) {
    cancel = false;
    return;
  }

  w.tapHandling = e.type;
  trigger(e);
}

关于javascript - jQuery:preventDefault() 不适用于 anchor 链接标记(尝试了很多方法!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43719685/

相关文章:

php - 从数据库中检索数据时换行

javascript - 是否可以收听 AddThis 帖子共享事件?

javascript - window.onload 包含图像

JavaScript:需要帮助订购我的 JS "Uncaught TypeError: Cannot read property ' 值为 null"

javascript - 简单堆叠行图

javascript - 展开/折叠 jquery 中的所有列表

jquery - Asp.Net MVC 2 中的文件下载

javascript - jQuery .find() 选择正确的元素但不显示它

javascript - 使用html-5在音频中播放特定的开始和结束持续时间

javascript - 尝试使用 JavaScript 访问由 <use> 生成的 SVG 元素