我决定在项目中使用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