空javascript事件的最佳实践(例如onclick=";javascript:";)

空javascript事件的最佳实践(例如onclick=";javascript:";),javascript,html,Javascript,Html,如果您想要一个事件或指向空javascript调用的链接,我可以想到以下几种方法: <a href="#">Method 1</a> <- Ugh... changes URL in browser <a href="javascript:;">Method 1</a> <- My currently preferred method <a href="javascript:v

如果您想要一个事件或指向空javascript调用的链接,我可以想到以下几种方法:

<a href="#">Method 1</a>                    <- Ugh... changes URL in browser
<a href="javascript:;">Method 1</a>         <- My currently preferred method
<a href="javascript:void(0);">Method 1</a>  <- Another approach?

按钮
怎么样?如果锚不引领Jquery解决方案,我就不会使用锚

$('a.preventDefault').click(function(){
 return false
});

<a href="#" class="preventDefault">Method 1</a>
$('a.preventDefault')。单击(函数(){
返回错误
});
使用


此外,如果没有Javascript链接不能做任何事情,那么没有Javascript的用户甚至不能看到链接。通过Javascript添加链接。

如果链接不。。。好吧,链接到任何东西

相反,请使用类似以下内容的
span

<span class="spanlink" onclick=something>This is some text</span>

反问:我看不出有什么理由把一个空链接放在页面上?链接应该。。。链接到某物。尽管向链接添加事件侦听器似乎很常见,但如果禁用JavaScript时它没有链接到回退页面,则应该使用按钮。只要事件调用
preventDefault()
或返回false,
href=“#”
不会更改浏览器URL。有时我必须使用此选项。例如,我有一个可点击的h2,它可以展开一个容器。我必须在其周围添加一个
a
标签以优化触摸效果。
return false
还可以防止冒泡。这不是最好的主意。@AlexeyLebedev当然,但是把可点击的元素放在
元素里面不是一个好主意,我会添加
光标:指针到css。这一点都不友好。这就是我在所有可点击的内容上添加链接的主要原因,即使它们没有链接到另一个页面。@DevilsChild“触控友好”是什么意思?当你使用跨距并在触控输入设备上触控跨距时,你的手指会选择部分文本,而使用链接时则不会。此外,IE 10突出显示的是触摸链接,而不是触摸跨距。单独使用键盘无法与跨距交互,此解决方案不便于访问。请避免。
.spanlink {
    text-decoration: underline;
    color: blue;
    cursor: pointer; /* Ragnagord's suggestion in comments */
}