哪个更好,假设我们不关心没有启用JavaScript的人?
<a href="#" onclick="executeSomething(); return false"></a>
Run Code Online (Sandbox Code Playgroud)
要么
<a href="javascript:executeSomething()"></a>
Run Code Online (Sandbox Code Playgroud)
有什么区别吗?
或者除了使用JavaScript库将事件附加到锚元素之外,我还有其他任何方法吗?
关于onclick的好处是你可以通过javascript禁用优雅地处理浏览器.
例如,无论是否在浏览器中启用了javascript,下面的照片链接都会有效:
<a href="http://www.example.com/myPhoto.jpg" target="_blank" onclick="showPhoto(this.href); return false;">foobar</a>
Run Code Online (Sandbox Code Playgroud)
这本质上是您想要遵循的模式:
这是一种方法:
<a id="link1" href="#">Something</a>
<script type="text/javascript">
// get a reference to the A element
var link1 = document.getElementById("link1");
// attach event
link1.onclick = function(e) { return myHandler(e); };
// your handler
function myHandler(e) {
// do whatever
// prevent execution of the a href
return false;
}
</script>
Run Code Online (Sandbox Code Playgroud)
其他人提到了 jQuery,它更加强大并且跨浏览器兼容。
最好使用 onclick,因为事情就应该是这样的。
这javascript:是一种模拟onclick.
另外我建议你尽可能做一些非侵入性的Javascript,它使代码更容易阅读和更易于维护!