在ajax调用后,当我点击某个页面跳转到顶部

时间:2013-09-19 13:11:08

标签: javascript jquery html

我已经为搜索记录做了一个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调用后添加了return false,但仍然没有结果。

提前致谢

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

你在错误的地方返回假!

ajax_search_primarycare函数的结果为false,所以假设您通过类似的方式调用此函数

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

你必须使用此函数返回false

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

答案 2 :(得分:0)

将您的成功回调更改为:

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

答案 3 :(得分:0)

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

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