Мой код предназначен для замены радиокнопок динамическими и позволяет щелкать как метку, так и новый динамический радиоэлемент, чтобы переключать состояние скрытого с помощью радиоблока CSS.
Мне нужно отправить questions.checkAnswer()
три параметра, и они определены в этих циклах инициации. Однако я всегда получаю последними последние значения, когда цикл завершает итерацию. В прошлом я создавал фиктивные элементы и другие вещи, которые не подходили для хранения «временных» ценностей в качестве информационного хука для Javascript.
Вот что у меня есть
init: function() {
// set up handlers
moduleIndex = $('input[name=module]').val();
$('#questions-form ul').each(function() {
questionIndex = $('fieldset').index($(this).parents('fieldset'));
$('li', this).each(function() {
answerIndex = $('li', $(this).parent()).index(this);
prettyRadio = $('<span class="pretty-radio">' + (answerIndex + 1) + '</span>');
radio = $('input[type=radio]', this);
radio.after(prettyRadio);
$(radio).bind('change', function() {
$('.pretty-radio', $(this).parent().parent()).removeClass('selected');
$(this).next('.pretty-radio').addClass('selected');
questions.checkAnswer(moduleIndex, questionIndex, answerIndex);
});
prettyRadio.bind('click', function() {
$('.pretty-radio', $(this).parent().parent()).removeClass('selected');
$(this).addClass('selected').prev('input').attr({checked: true});
});
$('label', this).bind('click', function() {
$(radio).trigger('change');
questions.checkAnswer(moduleIndex, questionIndex, answerIndex);
$(this).prev('input').attr({checked: true});
});
});
});
- Это плохо, чтобы добавить атрибут притвор с Javascript, например,
<li module="1" question="0" answer="6">
- Должен ли я хранить информацию в атрибуте rel и объединять ее, например, с дефисом, и разбирать ее, когда мне это нужно?
- Как вы решили эту проблему?
- Я открыт для любых идей, чтобы улучшить мой код Javascript.
Спасибо всем за потраченное время.