javascript:void(0)是一种常用于HTML中的Javascript语句,通常用作链接的href属性。它的主要作用是防止链接的默认行为(例如跳转到一个新页面或刷新当前页面),同时又可以执行一些Javascript代码
详细解释
- javascript:这是一个协议,表示后面的代码是Javascript代码
- void(0): void是一个运算符,它的作用是返回undefined。void(0)的结果是undefined,因此不会产生任何副作用
使用场景
1.防止页面跳转:当您希望一个链接执行某些Javascript操作,但又不希望页面跳转或刷新时,可以使用javascript:void(0)
2.与事件处理结合:通常与时间处理程序结合使用,例如:
<a href="javascript:void(0)" onlick="doSomething()">Click me</a>
在这个例子中,点击链接时会执行doSomething()函数,但不会导致页面跳转
注意事项
虽然javascript:void(0)可以有效防止页面跳转,但在现代开发中,通常建议使用href="#"或者不使用href属性,并通过JavaScript事件处理程序来控制行为,以提高可访问性和用户体验。例如:
<a href="#" onlick="doSomething();return false;">Click me</a>
在这个例子中,return false;可以阻止默认的链接行为。
在HTML中,当您点击一个<a>标签时,事件的处理顺序是:
1.onclick事件处理程序:首先会执行onclick事件处理程序中的JavaScript代码
2.href属性:如果onclick事件处理程序没有调用event.preventDefault()或者返回false,那么浏览器会继续执行链接的默认行为,即跳转到href指定的地址
<a href=""https://example.com" onlick="alert('Clicked!');">Click me</a>
在这个例子中,点击链接时会弹出一个警告框,然后浏览器会跳转到https://example.com
阻止默认行为
如果您希望在执行onclick事件后不进行跳转,可以使用event.preventDefault()或返回false
<a href=""https://example.com" onlick="alert('Clicked!');event.preventDefault();">Click me</a>
在这个例子中,点击链接时会弹出一个警告框,但不会跳转到https://example.com
总结
onclick事件处理程序先执行
如果没有阻止默认行为,链接的href会在onclick执行后被处理。
<a
href="javascript:void(0)"
onlick={(e)=>{
e.preventDefault();
setSelectedCategory
}}
>
</a>