У меня есть переключатель, который я хотел бы выбрать, если пользователь нажимает на div, внутри которого он находится. У меня есть событие click для div, но я не могу заставить его переключаться.
heres мой код:
var new_div = document.createElement('div');
new_div.setAttribute('id', 'controlDiv');
new_div.setAttribute('class', 'ansClass');
var newAnswer = document.createElement('input');
newAnswer.setAttribute('type', 'radio');
newAnswer.setAttribute('name', 'choice');
newAnswer.setAttribute('class', 'radioButton');
$(newAnswer).attr("id", "button"+j);
var newLabel = $("<label>", {id: "label"+j, class: "ansLabel", text: "answer"+j});
$(new_div).append(newAnswer);
$(new_div).append(newLabel);
$( "#controlDiv" ).click(function() {
var radButton = $(this).find('input[type=radio]');
radButton.click();
// $(radButton).attr("checked", "checked");
});
У меня был бы аналогичный ответ Аруну, за исключением небольшого изменения, чтобы можно было также снять отметку:
$('#controlDiv').click( function(){
var radButton = $(this).find('input[type=radio]');
if(radButton).is(':checked')){
$(radButton).removeAttr('checked');
} else {
$(radButton).attr('checked', 'checked');
}
});
Я мог бы пойти еще дальше и предоставить радиокнопку с определенным идентификатором. Если это один из многих, попробуйте пойти с классом. Это просто дает вам более конкретную информацию в вашей кодировке.