可能重复:
What is the difference between the different methods of putting JavaScript code in an <a>?
之间有什么不同
<a href="javascript:jsFunction();">test</a>
和
<a href="javascript:void(0);" onclick="javascript:jsFunction();">test</a>
非常感谢。
答案 0 :(得分:3)
第一个仅适用于a
标记。它是一个链接,由您的浏览器解释为javascript。
第二个是DOM事件,可用于所有标签。
答案 1 :(得分:1)
第一个是使用javascript
协议的链接,告诉浏览器在此之后执行所有操作,而不是尝试加载它指向的资源。
另一方面,onclick
属性是一个实际的JavaScript事件处理程序,不应该在开始时与javascript:
一起使用 - 它已经知道它是因此,不需要告诉JavaScript将其作为JavaScript执行。
但是,为了分离您的内容(HTML)和功能(JavaScript),最好不要使用上述技术,而是添加(例如)id
属性来识别您的元素和然后使用JavaScript绑定事件处理程序。
HTML:
<a href="#" id="test-anchor">test</a>
JavaScript的:
document.getElementById('test-anchor').onclick = function(event) {
jsFunction();
}
答案 2 :(得分:1)
不是这个@param
<a href="javascript:jsFunction(this);">test1</a>
成功这个@param
<a href="javascript:void(0);" onclick="javascript:jsFunction(this);">test2</a>
function jsFunction($this) {
return $this; // not href attribute this @param ; onClick attribute success this @patam
}