Передал аяксом класс в <div>, но как отловить событите клик на этот класс ?
Помогите разобраться, меня этот вопрос уже мучает давно.
Как можно отловить событие клик на класс без перезагрузки страницы, когда я это класс передал аяксом. |
Если использовать jQuery, там все упрощается благодаря методам .on() и .delegate(). P.S. Черт. Похоже, я не въехал в проблему. Можно подробнее? |
Вот к примеру есть блок
<div class="one"></div> По клику на него я отправляю данные с помощью $.post(); и при этом меняю класс one на two $('.one').on('click', function(){ $.post('...'); $('.one').removeClass().addClass('two'); }); А я пытаюсь отловить событие клик без перезагрузки страницы на класс two. У меня есть один вариант, но мне кажется что он не совсем правильный, это просто дописать в клике на one после того как добавляю класс two $('.two').click(function(){ alert('Работает') }); |
Цитата:
Но можно прослушивать событие "click" на родительском элементе, в котором лежит div (даже на body или document). (function($) { $(document).ready(function() { // вместо $("body") лучше подставить родителя div`а, // если он существует сразу при загрузке страницы $("body").on("click", ".two", function() { alert("Работает"); }); }); })(jQuery); |
Спасибо за нормальные советы.
|
|
Deff
Хорошо что проверил пост, чуть большую часть кода не переписал. Спасибо, выручили капитально, то что нужно. |
saturn, имейте в виду, что метод .live() объявлен как «deprecated», и документация всячески рекомендует отказываться от него в пользу более производительных методов .on() и .delegate().
|
As of jQuery 1.7, .delegate() has been superseded by the .on() method.
в общем, приходите к .on(), очень понятный, гибкий и действительно мощный (в плане функциональности) метод. $('.two').on("click", function() {}); |
tadjik1,
:write: Хорошо Вам танкистам... А у нас третий год 1.4.4. |
Часовой пояс GMT +3, время: 19:10. |