Отменить привязку события клика с ошибкой jQuery

StackOverflow https://stackoverflow.com/questions/1377654

  •  21-09-2019
  •  | 
  •  

Вопрос

Я использую сильно модифицированную версию плагина jqueryFileTree, которая позволяет добавлять новые файлы и папки.Когда в реальном времени создается новый файл, мне приходится снова привязывать дерево к событию щелчка, чтобы все новые файлы и папки могли работать по назначению.

Простая повторная привязка дерева файлов вызвала у меня некоторые проблемы с функциональностью папок.Для каждого нового файла дерево файлов запускает функцию связывания. Это означает, что когда вы добавляете один файл и затем нажимаете на каталог, чтобы закрыть его, он открывается, а затем закрывается, потому что функция запускается два раза.

Недавно я локализовал проблему и пытаюсь отменить привязку всех событий, связанных с деревом файлов, перед повторной привязкой.Однако проблема все еще существует.Почему это могло быть?Ошибка синтаксиса?

$('UL.jqueryFileTree').unbind();
bindTree('UL.jqueryFileTree');

Ваше здоровье!

Крис

Это было полезно?

Решение

Ага!

Мне следовало лучше провести исследование.Вместо этого он работает нормально после написания этого:

$('UL.jqueryFileTree').find('LI A').unbind();
bindTree('UL.jqueryFileTree');

Другие советы

Но если Unbind вызывает проблемы, вы можете использовать RemoveAttr() для удаления событий из элементов.Потому что в jQuery есть ошибка при событии отмены привязки.

Также обратите внимание на живое событие jQuery.Возможно, вам не нужно перепривязывать.Может работать лучше.

т.е.

$('#divId a').live('click', function(e){
   //do something to all matched and future elements
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top