Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 你们知道为什么.remove()对使用add按钮添加的行不起作用吗?它对已经存在的元素(如One)起作用 <html> <head> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> <script> $(doc

我不熟悉jQuery

你们知道为什么
.remove()
对使用
add
按钮添加的行不起作用吗?它对已经存在的元素(如
  • One
  • )起作用

    <html>
    <head>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <script>
            $(document).ready(function(){
                $('.more').click(function(){
                    html_frag='<li>XXX<input type="submit" value="Remove" class="testing" /></li>';
                    $('ul li:last').after(html_frag);
                    return false;
                });
            });
    
            $(document).ready(function(){
                $('.testing').click(function(){
                    $(this).remove();
                    return false;
                });
            });
        </script>
    </head>
    <body>
        <ul>
            <li>
                One
                <input type="submit" value="Remove" class="testing" />
            </li>
        </ul>
        <input type="submit" value="Add" class="more" />
    </body>
    </html>
    
    
    $(文档).ready(函数(){
    $('.more')。单击(函数(){
    html_frag='
  • XXX
  • '; $('ul li:last')。在(html_frag)之后; 返回false; }); }); $(文档).ready(函数(){ $('.testing')。单击(函数(){ $(this.remove(); 返回false; }); });
    • 一个

    ,因为绑定该处理程序时,新添加的元素在DOM上不存在。尝试使用以下委托事件

     $(document).ready(function(){
            $(document).on('click', '.testing', function(){
                $(this).remove();
                return false;
            });
     });
    

    试试这个,它不起作用,因为您正在动态地创建元素,以便在jquery上或实时使用动态创建的元素

       $("body").on("click", ".testing", function(event){
          $(this).remove();
              return false;
       });
    

    如果可能的话,使用比
    文档
    更严格的范围,以提高效率。@Brad Well不幸的是,他的html没有任何containerRight,为了他的利益,我说,如果他有其他东西可以附加处理程序,那会更好。一个相关的问题。比方说,我必须注意的事件与点击无关。假设事件是另一个节点(例如输入元素)的添加。那么如何在上使用
    ?我理解,由于性能问题,不建议使用
    domandeinserted
    等事件。在这种情况下,我应该做什么呢?好的,我看到有一些jQuery插件,比如
    livequery
    ,可以帮助实现这一点。这是通常的做法还是我走的方向不对?
    .live()
    很久以前就被弃用了。我不推荐使用它。如果使用旧的jquery库,可能取决于用户使用的jquery库,而不是什么?你的建议是,有人“对jquery不熟悉”,并显然用它创建了第一个项目,那么就可以回去为这个项目获得一个2-3年的jquery版本,这是荒谬的。在任何情况下,都不建议使用不推荐使用的函数!如果出于某种原因,例如某个正在处理现有项目的人,您需要在帖子中提到该方法已被弃用。你没有,所以我添加了一条评论,提醒未来的读者。对不起,下次我会的