jQuery和#link

时间:2011-12-01 20:33:51

标签: jquery html

我有一个链接

<a href="#">has a jQuery click handler</a>

我的jQuery以它应该的方式工作......但是hash#标签让我的浏览器在每次点击时跳到页面顶部。

有没有办法解决这个问题?我尝试删除#但它改变了我的CSS样式。

5 个答案:

答案 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>