.empty()清除事件

时间:2016-04-28 12:19:09

标签: javascript jquery

我定位js-trigger-restoreb存在于课程b_edit_meta的div中,例如:

<div class="b_edit_meta">
   <div class="js-trigger-restoreb">Click</div>
</div>

每当我的代码中有以下行时:

jQuery(this).closest("li").find(".b_edit_meta").empty();

它可以使函数的其余部分停止工作,可能是因为.empty()正在清除它。

有没有办法在没有清除事件的情况下清空那个div?

jQuery(document).ready(function() {
    jQuery('.js-trigger-restoreb').bind("mouseup", function() {

        jQuery(this).closest("li").find(".b_edit_meta").empty();

        // because of above line, nothing else works here

    });
});

jsFiddle上测试完整代码。

2 个答案:

答案 0 :(得分:1)

来自.empty上的jQuery文档:

  

如果要删除元素而不破坏其数据或事件处理程序(以便以后可以重新添加),请改用.detach()

答案 1 :(得分:1)

除了this以及之后的某些内容之外,你不能以.empty()之后的jQuery(this).closest("li")...使用li

尝试在清空容器之前将该​​引用保存到jQuery(document).ready(function() { jQuery('.js-trigger-restoreb').bind("mouseup", function() { var closestLi = $(this).closest("li"); // find the edit bullet content and remove the meta stuff $(closestLi).find(".b_edit_meta").empty();

closestLi

然后继续使用this而不是引用&#34;这个&#34;清空{{1}}容器后,它不再存在