对于<a>,javascript:void(0)或onclick ="return false" - 哪个更好?

Sir*_*lly 12 javascript

有一个基于javascript的界面 - 所以我不需要支持没有JavaScript的工作.

我有一个

<a>Something</a>
Run Code Online (Sandbox Code Playgroud)

带有JS代码的元素,它绑定了click事件 - 因此,我不想在用户点击后重新加载页面.

哪种方式更好?

1. <a href="javascript:void(0)">Something</a>
2. <a href="#" onclick="return false;">Something</a>
Run Code Online (Sandbox Code Playgroud)

每种方法有哪些优缺点?

Del*_*ani 11

两者都是糟糕的选择.演示文稿不应与内容混在一起.这意味着没有javascript:URI,绝对没有onclick属性.

做到这一点的方法:

<a id="myLink">Something</a>
<script>
    function myFunction(...) { ... }
    document.getElementById('myLink').addEventListener('click', myFunction, false);
</script>

  • 叹.我没有深入研究IE-is-bad-so-I-not-to-to-support-it问题.我将限制自己指出用户选择使用哪种浏览器,而不是你的浏览器,大多数用户既不知道也不关心他们使用哪种浏览器.有些根本无法切换.这个案例甚至没有争议:`addEventListener`甚至不能在当前版本的IE(8)中工作,这意味着你的代码在50%的人的浏览器中不起作用.您真的想要排除50%的人使用您的网站吗? (3认同)