Как и у Сета, у меня есть шаблоны для удаления событий & mdash; Я собираю ручки в массивы (псевдокод):
var handles = [
dojo.connect(...),
dojo.connect(...),
dojo.connect(...)
];
Если я подключаюсь динамически, я просто собираю их:
var handles = [];
...
handles.push(dojo.connect(...));
...
handles.push(dojo.connect(...));
Если я регулярно соединяю несколько событий, я могу использовать dojo.map()
:
var handles = dojo.map(["click", "ondblclick"], function(evt){
return dojo.connect(node, evt, ...);
});
Изящная часть в том, что позже я могу отсоединить их с помощью удобной однострочной:
dojo.forEach(handles, dojo.disconnect);
В вашем случае вы можете использовать словарь, показанный Сетом, чтобы выполнить то же самое:
var handles = {};
...
handles[node.id] = dojo.map(["click", "ondblclick"], function(evt){
return dojo.connect(node, evt, ...);
});
Так что позже вы можете отключить обработчики следующим образом:
dojo.forEach(handles[node.id], dojo.disconnect);
Посмотрите, помогут ли Сет и мои зарисовки в вашем случае. Если нет, дайте нам больше деталей.