4

我是 jQuery 的新手。

你们知道为什么使用按钮.remove()添加的行不起作用吗?add它适用于已经存在的元素,例如<li>One</li>.

<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>
4

2 回答 2

3

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

 $(document).ready(function(){
        $(document).on('click', '.testing', function(){
            $(this).remove();
            return false;
        });
 });
于 2012-11-03T05:46:07.857 回答
0

试试这个,它不起作用,因为你正在动态创建元素,动态创建的元素在 jquery 上或 live 上使用。

   $("body").on("click", ".testing", function(event){
      $(this).remove();
          return false;
   });
于 2012-11-03T05:48:14.317 回答