#或javascript:void(0)?

MEM*_*MEM 8 javascript onclick

我不打算开始辩论.

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

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

这些假设是否正确?

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

Fel*_*ing 16

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

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

与href内容有真正的联系#javascript:void(0)应该避免.

进一步说明:

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

语法上最正确的一个(imo)button就像你仍然有可能用它tab来导航它们.您可以使用CSS为它们设置样式,使它们看起来像一个链接(如果您愿意)(请参阅此示例).

现在关于防止默认操作:

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

link.addEventListener('click', function(event){
    // some code
    event.preventDefault();
}, false);
Run Code Online (Sandbox Code Playgroud)

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

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

  • @Felix:将我的链接添加到你的答案并删除了我自己的答案; 希望你不介意...... (2认同)