Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除使用jquery创建的元素?_Jquery - Fatal编程技术网

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

如何删除使用jquery创建的元素?,jquery,Jquery,我已经在jquery中编写了这段代码,以便在一些事件之后创建三个元素 $('body').append( tmp= $('<div id="tmp"></div>') ); $('<div id="close" />').appendTo("#tmp"); $('<div id="box-results" />').appendTo('#tmp'); 在我单击close div之后,什么都不会发生!我的代码怎么了 下面是一个在线示例:-请

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

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

$('<div id="close" />').appendTo("#tmp");   
$('<div id="box-results" />').appendTo('#tmp');
在我单击close div之后,什么都不会发生!我的代码怎么了


下面是一个在线示例:-请在站点中找到“这是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>

无论什么
div{
边框:1px纯黑;
填充:0.3em;
}
$(文档).ready(函数()
{
$('body')。追加($('');
$(“点击我”)。附加到(#tmp);
$('contents')。附录('#tmp');
$('#close')。绑定('click',函数()
{
$('#tmp')。删除();
返回false;
});
});
编辑

从更改插件的代码

$.ajax({
    ...
    success: function ()
    {
        $('<div id="close"/>').appendTo($('#tmp'));
    }
});
$('#close').click(function (e) ...);
$.ajax({
...
成功:函数()
{
$('')。附录($('#tmp');
}
});
$(“#关闭”)。单击(函数(e);

$.ajax({
...
成功:函数()
{
$('')
.单击(功能(e)…)
.appendTo($('#tmp'))
;
}
});

您应该使用live方法,而不是单击。它将允许您添加/删除元素,而无需更改其行为

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

由于ID为
#tmp
#close
的元素是动态创建的,因此不能直接对它们使用
单击
,而是需要方法:

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

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

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


你能给我看一些代码吗?你的意思是像$(“#close”).live('click',function(){});如果你的意思是它也不起作用了,它不起作用了。这是你测试的吗?这对你有用吗?!但它不适合我这里是我的-请在网站上找到“这里是jquery问题”的句子,因为网站语言是波斯语。我可以看到
google.load(“jquery”,“1.2.6”)在该页面中。有可能在那个版本中不起作用。不管怎么说,我发布的代码片段对你有用吗?如果是,请使用1.2.6重试。那它坏了吗?这是一个基本的可能原因消除的简单问题。我在插件中使用那个点击处理程序,也许这就是我的问题?!如果我在插件外使用click处理程序,那么使用插件是没有用的
$("element").live("click", function() { /*do things*/ });
$("#close").live('click', function(e){    
  $("#tmp").remove(); 
  return false;
});