使用以下基于jQuery的脚本,您可以停止虚拟链接的默认操作,即:<a href="#">
$('a').click(function(e) {
e.preventDefault();
});
这个剧本的普通版本是什么?
我不是JavaScript程序员,但我认为它可能是使用return false;
的东西。再说一次,我可能完全错了。
提前感谢您的帮助。
答案 0 :(得分:34)
你也可以使用香草javascript中的event.preventDefault()。通用方式,您始终可以使用return false
。如果附加事件处理程序,则保证在处理程序中传递事件agument,而不是使用onclick
或元素的任何其他属性(在这种情况下,您应该依赖于可用的特定事件对象)您可能无法在所有浏览器中使用的处理程序,例如在IE中您将使用window.event
)。
前: -
document.getElementById('someId').addEventListener('click', function(e){ //say this is an anchor
//do something
e.preventDefault();
});
所以对于所有的锚点:
var anchors = document.getElementsByTagName('a');
for(i=0, len=anchors.length; i<len; i++){
anchors[i].addEventListener('click', function(e){e.preventDefault();});
}
答案 1 :(得分:9)
// Like $('a'), gets all the <a> elements in the document.
var aElements = document.getElementsByTagName('a');
// Create one function object instead of one per <a> element.
// The calling convention is the same for jQuery as for regular JS.
function preventDefaultListener(e) { e.preventDefault(); }
// For each a element,
for (var i = 0, n = aElements.length; i < n; ++i) {
// register the listener to be fired on click.
aElements[i].addEventListener('click', preventDefaultListener);
}
答案 2 :(得分:1)
是的,您可以使用return false;
<a href="" onclick="return false;">test</a>
答案 3 :(得分:1)
返回false是要走的路。例如。如果你的锚已经有一个href:
<a href="http://www.google.com" onclick="alert('clicked!');return false">Click me</a>
像这样调用onclick只会执行该功能,但不会执行导航。
答案 4 :(得分:1)
@Ricardo你是对的先生。
return false
不仅禁用了所述元素的默认操作,还可以防止冒泡。
e.preventDefault();
e.stopPropagation();
等于
return false;
你决定:)