Переключатель в изображения, созданные динамически - PullRequest
1 голос
/ 09 августа 2011

Я хочу изменить проверенное радио BTN, нажав на изображение, которое создается динамически. Это PHP, генерирующий мое изображение:

<?php if($subject_list){
      foreach ($subject_list as $item):?>
            <input type="radio" name="subjectagendaactivity" value="male" />
            <img src="/static/images/school/students/subjects/island/island_<?php echo $item['id'];?>_agenda.png"/>
      <?php endforeach;}?>

Итак, мои изображения генерируются следующим образом, и это код, который я сделал в JQuery, чтобы иметь возможность изменить .cheked:

$(this).click(function () {
                $('input:radio[name=subjectagendaactivity]')[0].checked = true;
            });

Мне нужно изменить [0] на $ (this) или что-то вроде этого, чтобы мой радио-btn проверялся, когда я нажимал на правильное изображение.

Ответы [ 5 ]

1 голос
/ 09 августа 2011

Хотелось бы что-нибудь подобное для вас ?: http://jsfiddle.net/FsshJ/ Единственным недостатком является то, что для получения идентификаторов требуются img и inputОднако вы можете изменить его на что-то другое, если хотите / нуждаетесь в этом.

0 голосов
/ 09 августа 2011

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

$('img').click(function () {
    var $check = $(this).prev(':checkbox');

    if($check.is(':checked'){  // Already checked? Uncheck it!
        $check.removeAttr('checked');
    }
    else{
        $check.attr('checked','checked');
    }
});

Взгляните на методы обхода jQuery ;Вы должны быть в состоянии найти тот, который позволит вам захватывать ваши флажки по договоренности.

0 голосов
/ 09 августа 2011
$(this).click(checkIt($(this)));



// Elsewhere
function checkIt(rBtn) {
    rBtn.checked = true;
}
0 голосов
/ 09 августа 2011

попробуйте это:

$('input:radio[name=subjectagendaactivity]').each(function(index) {
if(index == 0)
{
     $(this).attr("checked","checked");
     return;
}
});
0 голосов
/ 09 августа 2011

Попробуйте это:

$(this).click(function () {
                $('input:radio[name=subjectagendaactivity]').attr("checked", true);
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...