今天跟大家聊聊`javascript:void(0)`,这东西我之前也没太在意,觉得挺神秘的,直到最近做项目,遇到一些需求,才真正开始研究它,现在就跟大家分享一下我的实践过程。
最开始接触`javascript:void(0)`,是在看别人写的代码里,`点击这里`,当时就觉得奇怪,这啥玩意儿?点击啥反应都没有,后来查查资料,才知道它可以用来阻止链接的默认行为。
第一个实践:阻止链接跳转
当时有个需求,要在页面上放几个链接,但是点击这些链接后,不能让页面跳转,只是想通过点击触发一些其他的JavaScript代码。我最开始想到的就是用`javascript:void(0)`。
-
HTML代码:
<a href="javascript:void(0);" onclick="myFunction()">点击阻止跳转</a>
-
JavaScript代码:
function myFunction() {
alert("你点击链接!");
这样,点击链接后,页面不会跳转,只会弹出一个提示框。感觉还挺方便的。
第二个实践:作为占位符
后来又遇到一个场景,需要在某个地方放一个链接,但是这个链接暂时没有任何实际的跳转地址,只是为预留一个位置。这个时候,我也想到`javascript:void(0)`。
<a href="javascript:void(0);">占位符链接</a>
这样,就放一个空链接在那里,点击也没啥反应,等到后面确定实际的跳转地址,再把`href`属性改过来就行。
第三个实践:对比`return false`
在实际使用中,我发现`javascript:void(0)`和`return false`有点像,都能阻止链接的默认行为。但是,它们之间还是有区别的。
-
`javascript:void(0)`:只是让链接不跳转,不会阻止事件冒泡。
-
`return false`:会阻止链接跳转,并且会阻止事件冒泡。
在选择使用哪个的时候,要根据实际的需求来决定。如果只需要阻止链接跳转,可以用`javascript:void(0)`;如果还需要阻止事件冒泡,就用`return false`。
一点小思考
虽然`javascript:void(0)`挺方便的,但是现在更推荐使用`*()`来阻止链接的默认行为。这样代码更清晰,也更符合现代JavaScript的编程规范。
-
HTML代码:
<a href="#" id="myLink">点击阻止跳转</a>
-
JavaScript代码:
const link = *("myLink");
*("click", function(event) {
alert("你点击链接!");
这样做,也更容易理解和维护。
`javascript:void(0)`是一个挺有用的东西,但是在实际使用中,要根据具体情况选择合适的方法。多尝试,多实践,才能更好地掌握它。