在省略href的同时实现onclick on anchor元素

时间:2017-11-19 15:34:31

标签: javascript html

我看到onclick元素在a元素上以不同的方式实现a,但我不知道每个人在另一个事件中的差异如何?

当我点击onclick event时,我希望href在没有<a href="#" onclick="myFunc()">Submit</a> 无所事事的情况下发生<a href="javascript:void(0);" onclick="myFunc()">Submit</a>

<a href="javascript:;" onclick="myFunc()">Submit</a>
addTooltip() { $(this.$el).tooltip({ trigger: 'hover', title: this.toolTipTitle(), placement: 'right', delay: { show: 300, hide: 300 } }) }
this.addTooltip()
在我的案例中哪个适合使用?

1 个答案:

答案 0 :(得分:1)

在今天的JS开发中,这些例子都不合适,因为内联JavaScript非常不受欢迎 - 分离HTML / JS是最佳选择。

因此,在从HTML页面调用的单独的JS文件中(将<script>放在</body>之前,以确保在执行脚本之前加载DOM),抓住锚点并添加事件监听每个调用相应函数的人。

let anchors = document.querySelectorAll('a');
[...anchors].forEach(anchor => anchor.addEventListener('click', handleAnchor, false));

然后在您的函数中,确保传入事件,并调用preventDefault()以停止禁用href。

function handleAnchor(e) {
  e.preventDefault();
  ...
}

MDN资源