点击时跳过锚点元素类型

问题描述 投票:0回答:1

如何在点击时跳过锚点元素类型?我的目标是,如果单击链接,它将调用一些函数,但会跳过某些锚元素类型。如果网站包含具有“单击时跳过”属性(如下所示)的链接,则单击它不会触发该功能。希望下面的示例是可以理解的。

https://jsfiddle.net/jo1myq8f/

$('a').on('click', function() {
  // Do something
  alert("Hello! I am an alert box!");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li><a href="">Do not skip</a></li>
  <li><a href="" target="_blank">Skip this on click</a></li>
  <li><a href="" class="example">Skip this on click</a></li>
  <li><a href="#">Skip this on click</a></li>
  <li><a href="mailto:[email protected]">Skip this on click</a></li>
  <li><a href="tel:+123456789">Skip this on click</a></li>
</ul>
jquery html anchor
1个回答
0
投票

您的意思是基于某些规则?

$('a')
  .not("[target]")  // omit from selection
  .not("[class]")   // omit from selection
  .on('click', function() {
  const href = $(this).attr("href");
  if (
    href==="#" ||
    href.startsWith("mailto") || 
    href.startsWith("tel")) return;
  alert("Hello! I am an alert box!");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li><a href="">Do not skip</a></li>
  <li><a href="" target="_blank">Skip this on click</a></li>
  <li><a href="" class="example">Skip this on click</a></li>
  <li><a href="#">Skip this on click</a></li>
  <li><a href="mailto:[email protected]">Skip this on click</a></li>
  <li><a href="tel:+123456789">Skip this on click</a></li>
</ul>
© www.soinside.com 2019 - 2024. All rights reserved.