slideUp在动态连接的div上失败

时间:2011-11-25 05:09:27

标签: jquery

以下是我用来附加div的代码:

$("#sessions").prepend(tempct);
$("#sessions>div:first-child").hide().slideDown(1000).delay(100,function(){
    $("#sessions>div:first-child").click();
    $("#renamemeeting").click();
});

这里tempct是我写的一些HTML,用于简单的div结构。 div确实附加并正确向下滑动。

接下来我尝试删除div,如下所示:

console.info("Starting call for element #tr"+chidcl+" and element is "+$("#tr"+chidcl));
                /*$("#tr"+chidcl).slideUp(500,function(){
                    console.log("slideUp was fired");
                });*/
                $("#trOF7VFS").slideUp(500,function(){
                    console.log("slideUp was fired");
                });
                console.warn("Finished call for element #tr"+chidcl+" and element is "+$("#tr"+chidcl));

此处显示Starting call...Finished call...行,但由于某些奇怪的原因,slideUp无法正常工作,也无法显示消息。

您可以在此处查看页面:http://mpsinfoservices.com/projects/sudipta/liveminutes/minutes.html

加载页面后,div trOF7VFS会自动附加,现在尝试转到操作菜单,点击delete,您就会看到问题。

2 个答案:

答案 0 :(得分:0)

我不确定你是否已经看过这个,但实际上你已经注意到了滑动的界限。而不是:

/*$("#tr"+chidcl).slideUp(500,function(){
      console.log("slideUp was fired");
  });*/
  $("#trOF7VFS").slideUp(500,function(){
      console.log("slideUp was fired");
  });

你实际上有:

/*$("#tr"+chidcl).slideUp(500,function(){
      console.log("slideUp was fired");
  });
  $("#trOF7VFS").slideUp(500,function(){
      console.log("slideUp was fired");
  });*/ 

答案 1 :(得分:0)

问题在于,由于某种原因,slideDown()效果正在排队(原因尚不明确)并且实际上从未结束。解决方案是在.stop('true')之前使用slideUp()来清除所有以前的动画队列。