2016-04-28 125 views
-1

我靶向js-trigger-restoreb中存在的一个div b_edit_meta类,例如:.empty()清除事件

<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上的完整代码。

+1

显示一些html ..? – hmd

+0

为什么不使用'.html('')'? –

+0

@hmd查看更新的问题。 –

回答

1

你不以任何其他方式使用this.empty()后多指jQuery(this).closest("li")...,然后东西。

尝试只是保存refrence到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的容器后

1

从jQuery文档上.empty

如果你想删除元素而不破坏他们的数据或事件处理程序(这样他们就可以在以后重新加入),使用.detach()代替。