#或javascript:void(0)?

前端之家收集整理的这篇文章主要介绍了#或javascript:void(0)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我不打算开始辩论.

如果我们想要使用onClick事件,我们应该以某种方式禁用href来触发. – 它是否正确 ?

如果以上是正确的,我相信javascript:void(0)的优点是不会触发滚动行为.

这些假设是否正确?

注意:我不打算搜索一个嵌合体,但我的任务是找到一种以跨浏览器方式设置按钮样式的方法,没有任何可访问性(根本没有),没有黑客和怪癖.

解决方法

如果要阻止链接,请在单击处理程序中添加 event.preventDefault()(IE中为 event.returnValue = false;).

看起来你只是看到一个链接,而不是它的功能(或目的).如果是这样,您可以使用带有CSS的button来相应地设置样式.

应该避免与href内容#或javascript:void(0)建立真正的链接.

进一步说明:

使用链接只是为了点击“可点击”并不好.链接具有独特的句法意义.由于可以为每个元素分配单击事件处理程序,因此可以使用任何其他元素.

语法上最正确的一个(imo)将是button,因为你仍然可以使用tab来导航它们.您可以使用CSS为它们设置样式,使它们看起来像链接(如果您愿意)(see this example).

现在关于防止默认操作:

假设您有一个具有正确href值的普通链接,并且您想拦截点击.在您分配给元素的点击处理程序中,例如

link.addEventListener('click',function(event){
    // some code
    event.preventDefault();
},false);

使用event.preventDefault()可以防止默认操作(如果是链接),则遵循URL.

(上面的代码是W3C兼容浏览器的一个例子,IE有点不同)

猜你在找的JavaScript相关文章