我正在努力追随这件事。我有一个用户页面,人们可以在这里制作组来存储内容。它也可以删除一个组。温某有人删除了他的小组,这将由ajax完成,因此没有页面重新加载。在此ajax请求之后,我显示一条消息,表示该组已被删除。
问题; 当用户删除组时,该消息显示良好。当用户删除第二个组时,消息显示两次,因此最后一条消息并未真正删除,而是由另一个ajax请求返回。我该如何解决这个问题?
代码示例;
$(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/');
}
});
});
});
在加载后删除邮件;
setTimeout(function() {
$('.hide-message').slideUp('slow').remove();
}, 2000);
答案 0 :(得分:3)
每当您致电prepend()
时,您都会向DOM添加其他消息。
您应该在点击功能之外添加消息,然后在成功时显示/隐藏消息。
答案 1 :(得分:0)
那是因为你隐藏了div /消息而不是删除它。使用Remove()函数删除类&#34;隐藏消息警报&#34;,然后下次删除时不会弹出。
编辑:我的不好,我发现你最后已经有了删除() - 但我不认为你正确地调用它是因为在message / div中你的班级有两个名字。您可能必须使用这两个名称来引用它:
$(&#39; .hide-message alert&#39;)。remove();
答案 2 :(得分:0)
试试这个
$("a.remove-group", this).die('click').live("click", function(){
答案 3 :(得分:0)
当您删除某些内容时,会在页面前添加一个“.hide-message”div。
$('.fullpage').prepend('<div class="hide-message alert">Group removed</div>');
然后你slideUp()“。hide-message”divs ......
$('.hide-message').slideUp('slow')
...将显示所有这些添加的div,每个组已删除一个。