单击链接时执行JavaScript

Jam*_*ead 6 javascript

哪个更好,假设我们不关心没有启用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库将事件附加到锚元素之外,我还有其他任何方法吗?

Rob*_*Rob 7

关于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)


Jef*_*ang 5

这本质上是您想要遵循的模式:

  • 编写您的 HTML 标记
  • 从 JavaScript 附加事件处理程序

这是一种方法:

<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,它更加强大并且跨浏览器兼容。


Rag*_*geZ 4

最好使用 onclick,因为事情就应该是这样的。

javascript:是一种模拟onclick.

另外我建议你尽可能做一些非侵入性的Javascript,它使代码更容易阅读和更易于维护