Potrzebuję pomocy w automatycznym sprawdzaniu pól wyboru w widoku drzewa.jQuery nie będzie zaznaczać pól wyboru
Mam widok drzewa, po kliknięciu pola wyboru wszystkie elementy podrzędne na liście będą miały automatycznie zaznaczone pola wyboru. Problem polega na tym, że nie zadziała.
treeview.find('input[type=checkbox]').each(function() {
$j(this).click(function() {
if ($j(this).is(':checked')) {
$j(this).siblings('ul').find('input[type=checkbox]').attr('checked', 'checked');
} else {
$j(this).siblings('ul').find('input[type=checkbox]').removeAttr('checked');
}
});
});
Tak więc kod mówi wszystko, znajduję wszystkie pola wyboru i na każdym zdarzeniu klikam wiążę. Po kliknięciu tego elementu sprawdza on, czy jest zaznaczone, a następnie znajduje wszystkie pola wyboru i ustawia ich atrybut jako zaznaczone, w przeciwnym razie znajdzie wszystkie pola wyboru i usunie ich zaznaczony atrybut. Moje selektory działają dobrze, więc nie stanowi to problemu.
Po kliknięciu pola wyboru wszystkie pola wyboru zostają zaznaczone, a po usunięciu zaznaczenia nadal działają. Ale przy innej próbie to już nie działa! To bardzo dziwne! A najdziwniejsze jest to, że kiedy sprawdzam kod, widzę na checkboxie, że ma on checked="checked"
, ale przeglądarka nie wyrenderuje stanu sprawdzonego (w rzeczywistości jest to główny problem).
Spróbuj '.prop()' zamiast '.attr()'. –