Функция jquery click () недоступна для новых div - PullRequest
5 голосов
/ 31 мая 2011

Во время работы моего сайта я создаю новые div, используя jquery с классом "a". Я определил функцию click () для класса «a» следующим образом:

$(document).ready(function() {
    $(".a").click(function(){
        $(".a").hide();
    });
});

Проблема в том, что новые div, созданные с тем же классом, не вызывают эту функцию при нажатии. Другие div с классом "a", которые есть в начале, делают. Что я делаю не так?

Ответы [ 4 ]

4 голосов
/ 31 мая 2011
$(document).delegate('.a', 'click', function() {
  $(this).hide();
});
3 голосов
/ 31 мая 2011

Попробуйте использовать функцию .live(), которая также должна применяться к вновь вставленным элементам DOM, которые соответствуют вашему селектору:

$(document).ready(function() {
    $(".a").live('click', function(){
        $(".a").hide();
    });
});
2 голосов
/ 22 марта 2012

Это также может сработать.

(function($) {  
  $(document).ready(function () {
    $('body').on('click', '.a', function() {
      $(this).hide();
    });
  });
}( jQuery ));

.on () присоединяет события к элементам управления, которые присутствуют и еще не представлены.

0 голосов
/ 31 мая 2011

Используйте "живой" метод.

http://api.jquery.com/live/

...