-1

我想从正文中隐藏附加的 div。我正在使用.onjQuery 1.9.1,但它不起作用。

<head>
    <style>
        .brd { border:solid 1px #FF0000; background:#CCCCCC}
    </style>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script type="text/javascript">
        function appendHtml (msg) {
            var htm= '<div class="brd">"' + msg + '"  <a href="javascript:void(0)">close</a></div>';
            $('body').append(htm);
        };
        $(function () {
            $('a').on('click', function () {
                $('.brd').remove();
            });
        });
    </script>
</head>
<body>
    <span onmouseover="appendHtml('hiii there')">append html</span>
</body>
4

4 回答 4

2

您需要添加on已存在于document. 在您的情况下,a是动态创建的。所以,on是行不通的。

选择要在其上触发事件的元素的最近父级。

在你的情况下bodydocument

$(document).on('click','a',function(){
  $('.brd').remove();
}) 
于 2013-06-06T10:09:33.817 回答
1

您需要对动态元素使用委托:

$(function(){
    $(document).on('click','a',function(){
       $('.brd').remove();
    })
})
于 2013-06-06T10:08:54.863 回答
0

试试这个语法

 $(document).on('click','a',function(){
       $('.brd').remove();
    })
于 2013-06-06T10:09:12.370 回答
0

在以下 DOM 元素上使用事件委托div.brd a

$('body').on('click','div.brd a',function(){
     $(this).parent().remove();
})

而且因为关闭按钮是一个div.brd孩子,您可以使用它$(this).parent().remove()来获得更快的性能

于 2013-06-06T10:11:44.107 回答