Проблема с кликом по checkbox
Подскажите, пожалуйста, как решить проблему работы клика по чекбоксу с id='checkbox_all'.
Первый клик - все чекбоксы с class='current' помечаются (как и ожидалось), Второй клик - снимает с них галочки. А третий и последующий клики не срабатывают. Что неправильно? <?php header('Content-type: text/html; charset=utf-8'); ?> <script type="text/javascript" src="jquery-1.10.2.js"></script> <script type="text/javascript" src="example.js"></script> <input type='checkbox' name='all' id='checkbox_all' /> <br /><br /><br /> <?php $total=3; for ($i = 0; $i < $total; $i++) { ?> <input type='checkbox' class='current' name='<?php echo "checkBox[".$i."]" ?>' id = '<?php echo $i; ?>' value='' /><br /> <?php } ?> $(document).ready(function(){ $('#checkbox_all').click(function(event) { // event.preventDefault(); $all = $(this); if ($all.attr('checked')) { $('.current').removeAttr('checked'); } else { $('.current').attr('checked','checked'); $all.attr('checked','checked'); } }); }); В дополнение: вставка alert('да 0 = '+$all.attr('checked'));показывает что $all.attr('checked') ='checked', срабатывает событие по умолчанию для клика по чекбоксу. Но как с эти бороться, не придумал, хотя пытался вставить event.preventDefault(); Вставка после else } else { $('.current').attr('checked','checked'); alert('да 0 = '+$all.attr('checked')); Извиняюсь, еще одно дополнение. Реализация кода ниже вроде сняла проблему $(document).ready(function(){ $('#checkbox_all').click(function() { $all = $(this); if ($all.attr('checked')) { $('.current').removeAttr('checked'); $all.removeAttr('checked'); } else { $('.current').attr('checked','checked'); $all.attr('checked','checked'); } }); }); Вроде потому что работает только в IE. В Google Chrom, Opera, Mozilla не срабатывает. Подсказка все-таки желательна. |
а теперь собери всё в один тестовый пример и добавь возможность запуска [html run]
php-вывод убрать jquery подключать не со своего компьютера |
Цитата:
|
Цитата:
|
Цитата:
|
заключить весь код в [ html run] без первого пробела и [/html] , чё непонятного, php-вывод тут тоже не сработает, поэтому не нужен, замени тем, что получается в итоге
|
Цитата:
Смысл то в чем? Первый пробел убрал. [ html run] <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript" src="example.js"></script> <input type='checkbox' name='all' id='checkbox_all' /> <br /><br /> <input type='checkbox' class='current' name='checkBox[0]' id = '0' value='' /><br /> <input type='checkbox' class='current' name='checkBox[1]' id = '1' value='' /><br /> <input type='checkbox' class='current' name='checkBox[0]' id = '2' value='' /><br /> [ /html] |
bartonom,
то что далее это вас просили сделать ну и решение вашей проблемы <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script> $(document).ready(function(){ $('#checkbox_all').click(function(event) { $('.current').prop('checked', $(this).prop('checked')) }); }); </script> </head> <body> <input type='checkbox' name='all' id='checkbox_all' /> <br /><br /> <input type='checkbox' class='current' name='checkBox[0]' id = '0' value='' /><br /> <input type='checkbox' class='current' name='checkBox[1]' id = '1' value='' /><br /> <input type='checkbox' class='current' name='checkBox[0]' id = '2' value='' /><br /> </body> </html> |
Цитата:
PS. Нажал на плюс в карму, но на единицу уменьшилось (изв.) Научите как карму правильно кликать. |
Цитата:
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 19:13. |