jQuery доступ к динамически создаваемым радиокнопкам - PullRequest
0 голосов
/ 30 сентября 2010

У меня есть 3 радио кнопки на моей странице. Они загружаются путем вызова функции jQuery, которая возвращает html ex:

<script type="text/javascript"><!-- 
 onSelectChange(4);
  -->

которые вызывают эту функцию:

function onSelectChange(parm){

        $.post("func.php", {function_name : "song"},
            function(data){
                $("#list").html(data.song_html);
                }, "json");
} 

Возвращенный HTML выглядит так:

<INPUT TYPE="radio" NAME="songs" VALUE="A">A
<INPUT TYPE="radio" NAME="songs" VALUE="B">B
<INPUT TYPE="radio" NAME="songs" VALUE="C">C
<INPUT TYPE="radio" NAME="songs" VALUE="D">D

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

 $("input[name='songs']").change( function() {
 alert($(this).val());

Хотя это никогда не срабатывает - я думаю, что это связано с динамическим добавлением элементов управления, потому что, когда я пытаюсь описать вышеизложенное на статической HTML-странице, оно срабатывает, как и ожидалось. Есть идеи?

Ответы [ 2 ]

2 голосов
/ 30 сентября 2010

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

$("input[name='songs']").live("change", function() {
  alert($(this).val());
});

Это работает иначе, чем поиск элементов и привязка к ним обработчика change, привязкаобработчик на document, который прослушивает всплывающее событие change ... и это происходит одинаково, независимо от того, когда был добавлен элемент.

0 голосов
/ 30 сентября 2010
$("input[name=songs]").change( function() {
 alert($(this).val());
}

без апострофа после имени =

...