Javascript和锚定标记,最佳实践?
快速提问 我们应该将Javascript放在HREF中还是使用onClick(事件) 使用其中一种方法有什么优点/缺点吗。就我个人而言,我认为简单地将代码放在href中更容易/更干净,而且不必返回false或担心跳转到# 每种方法是否存在已知的特定于浏览器的问题 示例:Javascript和锚定标记,最佳实践?,javascript,html,Javascript,Html,快速提问 我们应该将Javascript放在HREF中还是使用onClick(事件) 使用其中一种方法有什么优点/缺点吗。就我个人而言,我认为简单地将代码放在href中更容易/更干净,而且不必返回false或担心跳转到# 每种方法是否存在已知的特定于浏览器的问题 示例: <a href="javascript: alert('foo!');">Click Me</a> <a href="#" onClick="alert('foo!');return false"&
<a href="javascript: alert('foo!');">Click Me</a>
<a href="#" onClick="alert('foo!');return false">Click Me</a>
<a href="javascript:void(0)" onclick="alert('foo!');">Click Me</a>
在onclick事件中(虽然是用JS而不是属性指定的),使用一个合理的href属性 通常,我会将JavaScript外部化,但使用
href
将其称为:
尽管我认为您的快速警报示例可以作为规则的例外
但是,如果您使用像jQuery这样的JS库,您当然可以直接分配事件——请参阅jQuery教程中的第一个示例,它查看锚元素,而不是使用onclick。当不允许JS时,请确保在href
中有一个rational fallback URL
2) 您应该使用事件处理程序,而不是onclick=“…”
。
使用jQuery或XPath查找元素,然后为每个元素调用element.addEventListener()
还是老办法
element.onclick = function() { alert("foo"); };
在我看来,将代码与html分开是更干净的
<a id="foo" href="#">Click Me</a>
我个人不会将JavaScript代码放在HTML中。您应该使用一个事件监听器,当点击
时,该监听器将被触发
<a href="#" id="linkA">Click Me</a>
您应该将javascript代码外部化。收听.preventDefault方法上tagcool stuff的click事件。这通常被认为比在内联代码末尾返回false更好吗?@thesocalhacker:通常更喜欢这样做(使用事件处理程序,而不是内联代码)。您希望将JavaScript与HTML分开,所以是的,e.preventDefault()代码>是首选(与内联代码返回false相比)。
document.getElementByID("foo").onclick = function() { alert("hi"); }
<a href="#" id="linkA">Click Me</a>
document.getElementById('linkA').addEventListener('click', function(e){
e.preventDefault(); // Prevents page from scrolling to the top
alert('foo!');
});