我有一个用户列表,当我点击我的“删除”链接时我通过ajax删除了我的用户。 它工作正常,但我遇到了问题。
我在tihs目录中有我的用户列表:htttp://localhost/admin/dashboard.php? NAV =用户/索引
当我点击删除链接,然后在我的对话框上点击“是”,我的用户被删除但我的网址末尾有一个“#”,因此我有一些冲突。
像这样:htttp://localhost/admin/dashboard.php? NAV =用户/索引#
你知道为什么会发生这种情况吗?
这是我的jQuery:
$('.users').on('click','.j_userdelete',function(){
var delid = $(this).attr('id');
$('.users li[id="'+ delid +'"]').css('background','red');
//when I click in my delete link I open my confirm dialog
//my .confirm_dialog is only a background and .delete is div where I have yes and no buttons
$('.confirm_dialog').fadeIn("slow",function(){
$('.delete').fadeIn("slow");
});
//If I click in my "no" link I close my dialog
$("a#no").click(function(){
$('.delete').fadeOut("slow",function(){
$('.delete_dialog').fadeOut("slow");
});
$('.usuarios .users li[id="'+ delid +'"]').css('background','none');
});
//if I click in my "yes" link I have my post for delete
$("a#yes").click(function(){
$.post(url,{
action:'users_del',
idUser:delid
},function(){
window.setTimeout(function(){
$('.users li[id="'+ delid +'"]').fadeOut("slow");
},500);
//and then I close my dialog
$('.delete').fadeOut("fast",function(){
$('.delete_dialog').fadeOut("fast");
});
});
});
return false;
})
答案 0 :(得分:3)
问题是,a
标记的默认行为是触发重定向。这就是为什么您使用#
后缀重定向到当前网址的原因。要绕过此默认行为,请在调用event.preventDefault()
之前放置ajax post
,如下所示:
//if I click in my "yes" link I have my post for delete
$("a#yes").click(function(event){
event.preventDefault();
$.post(url,{
action:'users_del',
idUser:delid
},function(){
window.setTimeout(function(){
$('.users li[id="'+ delid +'"]').fadeOut("slow");
},500);
//and then I close my dialog
$('.delete').fadeOut("fast",function(){
$('.delete_dialog').fadeOut("fast");
});
});
答案 1 :(得分:2)
如果你想从HTML本身做到这一点。 简单地说就是
<a href="javascript:void(0);"></a>
通过这种方式,您无需为此修复任何JavaScript。