在ajax调用之后,当我单击某些页面跳转到顶部时

After ajax call when i click something page jump to top

本文关键字:顶部 之后 调用 ajax 单击      更新时间:2023-09-26

我已经做了一个ajax调用来搜索记录。结果来自 ajax 后,当我尝试单击它时,页面跳转到顶部。

我的 ajax 调用函数:

 function ajax_search_primarycare(keyword, userId){
    if(keyword.length >= 3){
         var pricareId = jQuery('#primarycare_provider_id').val();
         var pricareName = jQuery('#primarycare_provider_name').val();
         var pricareStatus = jQuery('#primarycare_icon_status').val();
         var primary_badge_status = jQuery('#primary_badge_status').val();
     $.ajax({type: "POST",
            url: "ajax_search_primarycareprovider.php?keyword="+keyword+"&userId="+userId+"&pricareId="+pricareId+"&pricareName="+pricareName+"&pricareStatus="+pricareStatus+"&primary_badge_status="+primary_badge_status,
            success: function(msg){
            $("#sect_primarycare").html(msg);
            }
        });
return false;
    }

我在 ajax 调用后添加了返回 false,但仍然没有结果。

提前致谢

您可能因为后面有指向"#"的链接而跳到顶部?可能有一个事件处理程序附加到锚元素标记链接到"#"。事件处理程序完成后,除非事件处理程序返回 false,否则将执行默认操作(指向 # 的链接)。您的 Ajax 调用已经返回 false,但这可能不是事件处理程序?解决方案是确保实际事件处理程序返回 false。

为了说明这一点:user2675751确实提出了正确的解决方案。

有时(我不知道什么时候,但我在我的一些脚本上观察到了相同的行为)return false;是不够的。
您可以尝试在href
上添加javascript:void(0);这总是对我有用。

你在错误的地方返回了假!

ajax_search_primarycare函数的结果是 false,所以假设你用这样的函数来调用这个函数

$("#subbmit").click(function() {
   ajax_search_primarycare('k',1);
});

你必须用这个函数返回假

$("#subbmit").click(function() {
   return ajax_search_primarycare('k',1);
});

将您的成功回调更改为以下内容:

success: function(msg){
    $("#sect_primarycare").html(msg);    
    $("#sect_primarycare").find('a').on('click', function(e) {
        e.preventDefault();
    });
}