我已经为搜索记录做了一个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,但仍然没有结果。
提前致谢
答案 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确实提出了正确的解决方案。