如何删除用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*/ });