我有一个链接
<a href="#">has a jQuery click handler</a>
我的jQuery以它应该的方式工作......但是hash#标签让我的浏览器在每次点击时跳到页面顶部。
有没有办法解决这个问题?我尝试删除#但它改变了我的CSS样式。
答案 0 :(得分:6)
如果您想快速解决问题,请在点击处理程序的末尾添加return false;
。
但是,返回false会强制您退出并实际上停止事件传播。由于您使用的是jquery javascript库,因此您还可以选择使用preventDefault()
方法,这将删除默认操作并允许该函数继续运行。
答案 1 :(得分:5)
您的点击处理程序应该return false;
或在事件对象上调用preventDefault()。
示例:
$('your selector').click(function(e) /* note the parameter e */
{
e.preventDefault();
//your code
});
答案 2 :(得分:1)
您也可以使用javascript: void false;
代替#
。所以:
<a href="javascript: void false;">has a jQuery click handler</a>
答案 3 :(得分:1)
重申上面的评论,这是正确的,在点击处理程序中添加一个返回false。这看起来像是:
$('.link').click(function(){
... things to run on click ...
return false;
});
答案 4 :(得分:0)
return false
或致电eventHandler.preventDefault()
事件发送onclick
:
$('#yourLink').click(function() {
return false;
});
或
$('#yourLink').click(function(e) {
e.preventDefault();
});
或将href
更改为:
<a href="javascript:void(0);">has a jQuery click handler</a>