我创建了一个jquery切换,但是当我单击链接打开div时,它将跳转到页面顶部。我该如何解决这个问题?
我知道我可以用其他东西替换链接但是我需要向用户说明它是一个链接,并且他们可以点击它。
答案 0 :(得分:37)
将return false;
添加到单击链接时运行的代码的末尾。
$('a.myLink').toggle(function() {
// run my code
return false;
});
或者,您可以抓取event
对象,然后拨打.preventDefault()
。
$('a.myLink').toggle(function(event) {
event.preventDefault();
// run my code
});
这两种方法都会禁用链接的默认行为。
第一个也会阻止事件冒泡,所以只有在你不需要利用事件冒泡时才使用它。
答案 1 :(得分:3)
这是因为有一个默认操作与链接,复选框,单选按钮等元素相关联。您可以这样取消它:
$('a.mylink').click(function(ev) { // Pass in the event object to your function
// do stuff
ev.preventDefault();
return false;
});
此处提供更多信息:http://api.jquery.com/event.preventDefault/
在极少数事件中将事件处理程序附加到链接的子项时,您还需要使用event.stopPropagation()
来阻止事件冒泡DOM。