установите флажки для всех функций - PullRequest
0 голосов
/ 06 июня 2011

В приведенном ниже коде я пытаюсь реализовать функциональность selectall. Когда я нажимаю на флажок select all, флажок с именем sts не выбирается. Что я делаю не так

 $(document).ready(function() {
 $("#selectall").click(function()
     {
        var checked_status = this.checked;
        $(".sts").each(function()
        {
           this.checked = checked_status;
        });
     });
  });
    var ele1 ='<table cellpadding="0" cellspacing="0" border="1" ><tr><th style="width:100px;" ><p align="center">Select all students</p><p align="center"><input type="checkbox" name="sts" class="sts" id="selectall"  /></p></th><th><p align="center">Student name</p></th><th><p align="center">Select Grade</p></th><th><p align="center">Certificates</p></th></tr>';
     for(var l=0;l<data.studentarr.length;l++)
     {
        ele1 +=  '<tr id="s_r_' + data.studentarr[l].id + '" class="students1"><td align="center" style="width:100px;"><input type="checkbox" class="sts" name="sts" /></td><td align="center">' + data.studentarr[l].name +'</td><td align="center">' + getgrade_values(data.studentarr[l].id) + '</td><td>' + data.studentarr[l].download_link + '</td></tr>';
     }
     ele1 += "</table>";
     $('#student_table').append(ele1);

1 Ответ

2 голосов
/ 06 июня 2011

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

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

$("#selectall").live("click" , function()
     {
        var checked_status = this.checked;
        $(".sts").not(this).each(function()
        {
           this.checked = checked_status;
        });
     });
  });
...