我決定在項目中使用NicEdit,因爲它是輕量級的。NicEdit - 解除綁定事件
所以,現在我的頁面中有可變數量的實例,點擊加載並在編輯器模糊處移除。
我需要知道如何從這個組件解除綁定事件。我試圖手動解除綁定,但我不明白他們在哪裏鏈接!
$('.container').bind('click', function(){
var _form = $(this).parentsUntil('form').parent();
var textarea = _form.find('textarea.edit');
var ta_id = textarea.attr('id');
var ed = new nicEditor(niceditOptions).panelInstance(ta_id);
// Show Preview and update textarea and so on
ed.addEvent('blur', function() {
var _ed = nicEditors.findEditor(ta_id);
var ev_type, evt, events = this.eventList;
for (ev_type in events){
for (evt in ev_type){
if (this.removeEventListener){
this.removeEventListener(ev_type, events[ev_type][evt]);
}
else {
this.detachEvent('on' + ev_type, events[ev_type][evt]);
}
}
}
this.removeInstance(ta_id);
});
});
非常感謝!達維德。
我不明白,你正試圖解開別的東西?你能否爲你想達到的目標增加一些清晰度? – JDandChips
當然!我有多個textareas。我激活編輯器點擊textarea並關閉模糊處理器(nicEdit blur)。當我刪除當前實例時,單擊編輯器外部(nicEdit blur),blur事件仍然綁定在某處,並在控制檯日誌中進行檢查。點擊另一個textarea,我建立另一個編輯器並附加另一個模糊事件。我不明白組件是如何工作的,或者在刪除實例時有什麼髒東西? – Davide
是的,所以它聽起來像問題是,你正試圖創建一個新的編輯器面板,每次你選擇一個文本框?你有沒有嘗試過使用一個編輯器面板?您可以在解除綁定時將其「隱藏」,在點擊時將其「隱藏」,然後您只需對着編輯器的單擊實例重新「定位」即可。這通常是我的做法,因爲nicEditor在一個編輯器面板實例中運行得非常好。如果你認爲這可以解決你的問題,我可以寫一個例子。 – JDandChips