如何删除用jquery创建的元素?

我已经在jquery中编写了这段代码,以便在一些事件之后创建三个元素

$('body').append( tmp= $('
') ); $('
').appendTo("#tmp"); $('
').appendTo('#tmp');

这三个元素是正常创建并添加到我的DOM但我想用这样的函数删除它们:

 $("#close").click(function(e){ e.preventDefault(); $("#tmp").remove(); //$("#overlay").remove(); }); 

然后我点击关闭div注意发生! 我的代码出了什么问题?

这里是在线示例: mymagazine.ir/index.php/main/detail/36 – 请在网站上找到“这里是jquery问题”的句子,因为网站语言是波斯语

将元素插入文档后,需要在#close上添加单击处理程序。

编辑提供所要求的演示; 在ff36测试:

   whatever        

编辑

从中更改插件的代码

 $.ajax({ ... success: function () { $('
').appendTo($('#tmp')); } }); $('#close').click(function (e) ...);

 $.ajax({ ... success: function () { $('
') .click(function (e) ...) .appendTo($('#tmp')) ; } });

因为带有id #tmp#close的元素是动态创建的,所以你不能直接使用它们,你需要使用live()方法:

 $("#close").live('click', function(e){ $("#tmp").remove(); return false; }); 

Live()描述:

现在或将来,为当前选择器匹配的所有元素附加事件处理程序。

可以看出,您的元素是动态创建的(未来),而不是在加载页面时。

更多信息在这里

您应该使用实时方法而不是单击。 它允许您添加/删除元素而不改变其行为

 $("element").live("click", function() { /*do things*/ });