2015-12-22 4 views
0

Так у меня есть HTML Richtext editor.My структура кода, как этоDetach обработчики событий выборочно

function richTextEditor(div) 
{ 

    var self=this; 
    self.instanceIdentifier=Math.floor(Date.now()); 
    //Richtext editor creation logic 

    $(document).on('click.'+self.instanceIdentifier,function() 
    { 
     //some logic 
    }) 

    self.destroy=function() 
    { 
    //delete all properties of self 
    // detach all listeners 
    $(document).off('click.'+self.instanceIdentifier) ; 
    } 
} 

Наше приложение одно приложение страницу, и существует несколько экземпляров RichTextEditor открыты в разных панелях. Мне нужно уничтожить экземпляр, когда узел, соответствующий этому, был удален. Destroy должен удалить все обработчики событий, прикрепленные этим экземпляром. До сих пор Date.now() для однозначной идентификации обработчика работает, но я думаю, что должен быть какой-то элегантный способ сделать это.

var div1=$('#notes')[0]; 
    var editorInstance1=new richTextEditor(div1); 
    //remove is not a valid jquery event, its just for illustration 
    // I am getting remove event from another library 
    $(div1).on('remove',function(){ 
     editorInstance1.destroy(); 
    }) 

Просьба предложить, если это правильный путь.
Спасибо за ваше драгоценное время.

ответ

1

Что вы хотите - это GUID или UUID. На этот вопрос есть большой ответ here.