2016-04-28 71 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()代替。