Мне нужна помощь с автоматической проверкой флажков в treeview.jQuery не будет проверять флажки
У меня есть дерево, когда я нажимаю флажок, все дочерние элементы в списке будут автоматически отмечены флажками. Проблема в том, что это не сработает.
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');
}
});
});
Так что код говорит все, я нахожу все флажки, и на каждом я связываю событие click. Когда элемент щелкнут, он проверяет, проверен ли он, затем найдите все флажки и установите их атрибут для проверки, иначе найдите все флажки и удалите их проверенный атрибут. Мои селекторы работают нормально, так что это не проблема.
Когда я нажимаю на флажках, все флажки проверяются, и когда я снимаю галочку, он все еще работает. Но, по другой попытке, он больше не работает! Это очень странно! И самое странное, что когда я проверяю код, я могу видеть на флажке, что он имеет checked="checked"
, но браузер не будет отображать проверенное состояние (на самом деле это основная проблема).
Попробуйте '.prop()' вместо '.attr()'. –