Связывание событий JQuery - PullRequest
1 голос
/ 20 сентября 2009

События JQuery меня раздражают. Дело в том, что я очень часто использую javascript (после запросов ajax и т. д.) для создания новых элементов (кнопки, div и т. д.). У меня есть список элементов который вы можете нажать на кнопку редактирования, чтобы вы могли манипулировать одним связаны с выбранной кнопкой редактирования.

Теперь, если кто-то отправит форму, чтобы создать новый элемент, как те, кто существовал ранее, и я отправляю его с помощью ajax, а затем добавляю или добавляю новый элемент в списке. После этого новая кнопка редактирования для новый элемент не связан с системой событий JQuery, так как DOM не имеет был перезагружен после создания кнопки редактирования Если я позвоню так же Javascript файл с событиями в нем, то кнопка редактирования работает, но затем, когда люди нажимают другие кнопки редактирования, событие происходит дважды их, так как они связаны дважды. Я также использовал .bind (), но это только связывает (я думаю) одно и то же событие дважды, как и раньше. Я не помню в момент, как я это проверял. Я не проверял .one (), но я бы предпочел не используйте его, поскольку некоторые события должны вызываться более одного раза.

Я просто хотел спросить вас, ребята, какой подход вы используете при работе с события?

P.S. Я связываю событие JQuery с атрибутом класса, который есть у всех элементов. Если бы я собирался привязать это к каждому элементу на основе ID, то это не было бы проблемой, потому что тогда я бы просто использовал .bind (). Написав это, я неожиданно использовал .unbind (), а затем .bind (), чтобы связать элементы с системой событий. Что вы думаете об этом? Вы бы сделали это по-другому?

Заранее спасибо. Kristinn.

Ответы [ 3 ]

4 голосов
/ 20 сентября 2009

Вы собираетесь использовать $ .fn.live:

$('a').live('click', function(e) {
    e.preventDefault();
    alert('im attached even if the DOM has been updated!');
});

http://docs.jquery.com/Events/live

2 голосов
/ 20 сентября 2009

Ваш вопрос немного общий, но у меня есть ощущение, что вы ищете jquery live

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...