4

我已经为搜索记录进行了 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

4 回答 4

0

将您的成功回调更改为此:

success: function(msg){
    $("#sect_primarycare").html(msg);    
    $("#sect_primarycare").find('a').on('click', function(e) {
        e.preventDefault();
    });
}
于 2013-09-19T13:21:33.100 回答
0

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

函数的结果ajax_search_primarycare是假的,所以假设你通过这样的方式调用这个函数

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

你必须用这个函数返回 false

$("#subbmit").click(function() {
   return ajax_search_primarycare('k',1);
});
于 2013-09-19T13:18:15.917 回答
0

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

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

于 2013-09-19T13:22:50.643 回答
0

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

于 2013-09-19T13:16:29.893 回答