2013-03-04 3 views
3

Новичок для jQuery здесь. У меня есть флажок, который динамически добавляемые через следующий код в JQuery:jQuery Управление событиями checkbox с .live()

.html("<input type='checkbox' class='checkbox' value='7.5'>"); 

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

$(".checkbox").live('click', function() { 
    alert('test'); 
}); 

или обзвонить все флажки:

$(":checkbox").live('click', function() { 

    alert('test'); 
}); 

Это не работает вообще. Есть идеи? Очень ценим!

+0

Какую версию jQuery вы используете? –

+0

Обязательно проверьте документы перед тем, как спросить http://api.jquery.com/ – Zachrip

ответ

9

.live() устарел. Используйте синтаксис делегирования событий:

$(document).on('change', 'input[type="checkbox"]', function(e) { 
    alert(e); 
}); 

Заменить document с селектором ближайшего родительского элемента, который присутствует при связывании обработчика событий. Я также предлагаю не использовать :checkbox, так как это неродственный селектор и будет медленнее, чем input[type="checkbox"]

+0

Хороший ответ, так же, как я собирался ответить :) – Zachrip

+0

Работы :) Большое спасибо! – Losman90

+0

Возможно, стоит упомянуть, что помимо указания типа ввода на селекторе «input [type = 'checkbox]] вы можете дополнительно добавить имя класса для дальнейшего сужения целевых элементов: input [type =' флажок ']. флажок – Mevius

Смежные вопросы