jquery attr ('checked', 'checked') funktioniert nur einmal

Ich habe ein Problem, das Grund für das folgende jquery / checkbox-Verhalten findet.

$( this.obj + ' table.sgrid-content > thead > tr > th > input.select_all' ).on( 'click' , {grid:this} , function(event){

var grid = event.data.grid;

if( $(this).is(':checked') ){

    $( grid.obj + ' table.sgrid-content > tbody > tr > td > input.select ' ).attr('checked','checked');
    $( grid.obj + ' .sgrid-content > tbody > tr > td > input.select ' ).parents('tr').addClass('ui-state-highlight');

} else {

    $( grid.obj + ' table.sgrid-content > tbody > tr > td > input.select ' ).removeAttr('checked');
    $( grid.obj + ' table.sgrid-content > tbody > tr > td > input.select ' ).parents('tr').removeClass('ui-state-highlight');

}

});

Der Code soll wie folgt funktionieren: - Klicken Sie auf input.select_all löst das Ereignis aus. - Wenn input.select_all aktiviert ist, wird allen Kontrollkästchen, die in table.sgrid-content als .select markiert sind, ein Attribut hinzugefügt 'Attribut aus allen input.select Elementen.

Noch eine einfache Gitterfunktion. Und es funktioniert. Der seltsame Teil ist, dass es nur einmal funktioniert. Damit meine ich, Sie können alle Kontrollkästchen aktivieren und deaktivieren. Nach diesem Vorgang funktioniert die Funktion "Alles auswählen" nicht mehr.

Eine andere seltsame Sache ist, wenn ich dom-Elemente mit einem Firebug überprüfe, werden sie alle überprüft = "überprüft" attr wie sie sollten, aber sie zeigen an und verhalten sich wie sie nicht überprüft wurden.

Selektoren arbeiten so, wie sie sollten. Der Codeteil beim Hinzufügen / Entfernenui-state-highlight funktioniert die ganze Zeit.

Wort der Erklärung:Gitter - ist das Objekt, das ich übergebe, um grid.obj zu erhalten (im Grunde ID eines ceratain div)

Bitte geben Sie mir Ihre Meinung.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage