如何在preventDefault()之后重新启用默认操作?

时间:2018-03-21 11:50:30

标签: javascript jquery

我有一个应用程序,其中某些操作正在按钮的单击事件上发生。此外,我想在应用程序中的每一个上追加一个查询字符串。为此,我编写了一个jquery代码,如下所示: -

window.addEventListener('click', function(event) {
    event.preventDefault();
    var href = event.target.getAttribute("href");
    if(href && href.indexOf('http') !== -1) {
      timezone = jstz.determine()
      window.location.href = href + '?jstz=' + timezone.name();
    }
    else 
    {
      // re-enable default;
    }
}, false);

代码阻止了每个点击事件的默认操作。然后检查事件生成器是否具有href属性。如果它具有href属性,则它会将当前客户端时区附加到URL中。

问题是,上面的代码阻止了每个可点击对象的点击事件。

  • 如何重新启用默认操作?
  • 我有什么办法可以event.preventDefault()只用锚标签吗?

1 个答案:

答案 0 :(得分:0)

您可以在jquery选择器上使用事件侦听器实现逻辑:

$("#target").click(function(event) {
  event.preventDefault();
  var href = event.target.getAttribute("href");
  // blah blah
});

这样,对于此示例,仅当带有id目标的元素 单击时才会调用防止默认值。

有关jquery选择器的更多信息:https://www.w3schools.com/jquery/jquery_ref_selectors.asp