小编典典

jQuery的锚元素上点击强制滚动到顶部?

ajax

我在使用jquery和附加到锚元素的click事件时遇到问题。[1]:jQuery超链接-
href值?“这个” SO问题似乎是重复的,并且可接受的答案似乎并不能解决问题。对不起,这是不好的礼节。

在我的.ready()函数中,我有:

jQuery("#id_of_anchor").click(function(event) { //start function when any update link is clicked
        Function_that_does_ajax();
        });

我的锚点看起来像这样:

<a href="#" id="id_of_anchor"> link text </a>

但是当单击链接时,将按需执行ajax功能,但是浏览器滚动到页面顶部。不好。

我尝试添加:

event.preventDefault();

在调用执行ajax的函数之前,但这无济于事。我想念什么?

澄清度

我已经使用了

return false;
event.preventDefault(); 
event.stopPropagation();

在调用js ajax函数之前和之后。它仍然滚动到顶部。


阅读 242

收藏
2020-07-26

共1个答案

小编典典

那应该起作用,您能否阐明“之前”的含义?你在做这个吗?

jQuery("#id_of_anchor").click(function(event) {
    event.preventDefault();
    Function_that_does_ajax();
});

因为从某种意义上来说这 应该 起作用,如果它不起作用,则说明您做错了什么,我们需要查看更多代码。但是,为了完整起见,您还可以尝试以下操作:

jQuery("#id_of_anchor").click(function() {
    Function_that_does_ajax();
    return false;
});

编辑

这是此工作的示例

这两个链接使用以下代码:

$('#test').click(function(event) {
    event.preventDefault();
    $(this).html('and I didnt scroll to the top!');
});

$('#test2').click(function(event) {
    $(this).html('and I didnt scroll to the top!');
    return false;
});

如您所见,它们工作正常。

2020-07-26