JQuery как выбрать динамически созданный переключатель. у меня есть
<div id="rDataR">
</div>
МОЙ JAVASCRIPT
<script>
$(function () {
var items="<p>";
for (var i = 0; i < length; i++) {
items+="<input type='radio' id='myrdb' value='"+i+"'/>"
}
items+="</p>"
$("#rDataR").html(items);
}
</script>
Я пробую это, но не работаю
$('#myrdb').click(function () {
if ($(this).is(':checked')) {
alert($(this).val());
}
});
попробуйте следующее:
$(document).on('click','#myrdb',function () {
if ($(this).is(':checked')) {
alert($(this).val());
}
});
Вам необходимо изменить динамически добавленный html на
items+="<input type='radio' class='myrdb' value='"+i+"'/>"
Поскольку в соответствии с соглашением dom id's
должен быть уникальным.
И обработчик события jQuery будет выглядеть так:
$(document).on('click','.myrdb',function () {
if ($(this).is(':checked')) {
alert($(this).val());
}
});
Вместо того, чтобы использовать дублирующий класс использования id для пользовательских входов, обращайтесь к ним:
$(function(){
$('.myrdb').filter(':checked').click(function(){alert('I am checked')})
});
Логика правильная. Вы просто пропустили какие-то терминальные двоеточия здесь и там, и у вас была одна маленькая случайная опечатка, и вы не определили свою длину. Я также изменил ваши радиоэлементы, чтобы использовать класс вместо id, чтобы они могли быть однозначно идентифицированы последовательно. Изменения теперь выглядят следующим образом:
Ваш HTML: <div id="rDataR"></div>
Ваш JavaScript <script> $(function() { var items = "<p>"; var length = 10;//added length for (var я = 0; я < length; i++) { items += "<input type='radio' class='myrdb' value='" + я + "'/>"; } items += "</p>"; $("#rDataR").html(items);//corrected the typo #rDataE }); </script>
Ваш триггер $(".myrdb").click(function() { if ($(this).is(':checked')) { alert($(this).val()); } });
Дайте мне знать, как это происходит