ajax请求后的Jquery双消息
我正在努力做下面的事情。我有一个用户页面,人们可以在其中创建组来存储内容。也可以删除组。如果有人删除了他的组,这将由ajax完成,因此不会重新加载页面。在这个ajax请求之后,我将显示一条消息,表明该组已被删除 问题; 当用户删除组时,消息显示良好。当用户删除第二个组时,消息会显示两次,因此最后一条消息不会被真正删除,而是通过另一个ajax请求返回。我如何解决这个问题 代码样本ajax请求后的Jquery双消息,ajax,jquery,Ajax,Jquery,我正在努力做下面的事情。我有一个用户页面,人们可以在其中创建组来存储内容。也可以删除组。如果有人删除了他的组,这将由ajax完成,因此不会重新加载页面。在这个ajax请求之后,我将显示一条消息,表明该组已被删除 问题; 当用户删除组时,消息显示良好。当用户删除第二个组时,消息会显示两次,因此最后一条消息不会被真正删除,而是通过另一个ajax请求返回。我如何解决这个问题 代码样本 $(function () { var form = $('form.groups select');
$(function () {
var form = $('form.groups select');
$("a.remove-group", this).live("click", function(){
var group_name = $(this).attr("id");
var string = 'group_name=' + group_name;
$.ajax({
type: "POST",
url: "/settings/delete/",
data: string,
cache: false,
success: function() {
$('.fullpage').prepend('<div class="hide-message alert">Group removed</div>');
$("#ordered").load('/settings/managmant/');
}
});
});
});
这是因为您正在隐藏div/消息,而不是删除它。使用Remove()函数删除类“hide message alert”,这样下次删除时它就不会弹出 Edit:My bad,我看到您在末尾已经有了Remove(),但我认为您的调用不对,因为在message/div中,您的类有两个名称。您可能必须使用以下两个名称来引用它:
$('.hide message alert').remove() 每次调用
prepend()
都是在向DOM添加额外的消息
您应该在单击功能之外预先添加消息,然后在成功时显示/隐藏它。试试这个
$("a.remove-group", this).die('click').live("click", function(){
当您删除某些内容时,您会在页面上附加一个“.hide message”div
$('.fullpage').prepend('<div class="hide-message alert">Group removed</div>');
…所有这些添加的div都将显示,您删除的每个组都有一个div。您不必同时使用这两个选择器谢谢您对此功能的解释!
$('.fullpage').prepend('<div class="hide-message alert">Group removed</div>');
$('.hide-message').slideUp('slow')