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

标签 jquery

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

$('body').append(
tmp= $('<div id="tmp"></div>')
);

$('<div id="close" />').appendTo("#tmp");   
$('<div id="box-results" />').appendTo('#tmp');

这三个元素正常创建并添加到我的 DOM 中,但我想使用如下函数删除它们:

$("#close").click(function(e){

e.preventDefault();
$("#tmp").remove(); 
//$("#overlay").remove(); 
});

在我点击关闭 div 后,注意到发生了!我的代码有什么问题吗?

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

最佳答案

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

编辑提供请求的演示;在 ff36 中测试:

<html>
<head>
 <title>whatever</title>
 <style type="text/css">
   div {
     border: 1px solid black;
     padding: 0.3em;
   }
 </style>
 <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
 <script type="text/javascript">
  $(document).ready(function ()
  {
    $('body').append($('<div id="tmp"/>'));
    $('<div id="close">click me</div>').appendTo("#tmp");   
    $('<div id="box-results">contents</div>').appendTo('#tmp');
    $('#close').bind('click', function ()
    {
      $('#tmp').remove();
      return false;
    });
  });
 </script>
</head>
<body>
</body>
</html>

编辑

更改插件的代码

$.ajax({
    ...
    success: function ()
    {
        $('<div id="close"/>').appendTo($('#tmp'));
    }
});
$('#close').click(function (e) ...);

$.ajax({
    ...
    success: function ()
    {
        $('<div id="close"/>')
            .click(function (e) ...)
            .appendTo($('#tmp'))
        ;
    }
});

关于jquery - 如何删除用jquery创建的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3022876/

相关文章:

jquery - Webkit + jQuery + SuperBGImage : full-browser images not anti-aliasing

jquery - 根据相同的类名更改多个 div 内容?

c# - 在 JavaScript 或 JQuery 中访问数据表

php - 使用 jQuery 时控制缓存

javascript - 未捕获的类型错误 : Cannot read property 'safari' of undefined

javascript - 如何传输一个 html 文件的表单值并将其作为另一个文件中的值?

javascript - Coda 风格的工具提示,弹出定位

javascript - 仅在媒体大小超过 980px 时将 Wordpress Logo 移动到内联主导航中心(无序列表)

javascript - 无法提醒 href val?

javascript - 当幻灯片到达最后一张幻灯片时停止幻灯片