为了账号安全,请及时绑定邮箱和手机立即绑定

关于p的问题

<body>

    <p>P元素1,默认给绑定一个点击事件</p>

    <p>P元素2,默认给绑定一个点击事件</p>

    <button id="bt1">点击删除 p 元素</button>

    <button id="bt2">点击移动 p 元素</button>

    <script type="text/javascript">

    $('p').click(function(e) {

        alert(e.target.innerHTML)

    })

    var aa;

    $("#bt1").click(function() {

        if (!$("p").length) return; //去重

        //通过detach方法删除元素

        //只是页面不可见,但是这个节点还是保存在内存中

        //数据与事件都不会丢失

        aa = $("p").detach()

    });


    $("#bt2").click(function() {

        //把p元素在添加到页面中

        //事件还是存在

        $("body").append(p);

    });

    </script>

</body>

我划下划线的几个地方改过了,改成这样后,点击button1——删除p,对的。可是点击button2——添加p的时候,变成了添加4个p了。为什么?

正在回答

3 回答

之前的p就相当于你现在写的aa,它只是一个变量里面保存了$("p").detach()删除的东西,如果想要加回来那么应该append(aa)

0 回复 有任何疑惑可以回复我~

...你这第二个点击移动那个就触发不了,append()中的参数都不对

0 回复 有任何疑惑可以回复我~

你确定你这样写的不报错?

<body>

<p>P元素1,默认给绑定一个点击事件</p>

<p>P元素2,默认给绑定一个点击事件</p>

<button id="bt1">点击删除 p 元素</button>

<button id="bt2">点击移动 p 元素</button>

<script type="text/javascript">

$('p').click(function(e) {

alert(e.target.innerHTML)

})

var aa;

$("#bt1").click(function() {

if (!$("p").length) return; 

aa = $("p").detach()

});


$("#bt2").click(function() {

$("body").append(aa);

});

</script>

</body>

这样写没问题

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于p的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信