Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Появление кнопки «удалить отмеченные» при нажатии одного checkbox (https://javascript.ru/forum/misc/51804-poyavlenie-knopki-udalit-otmechennye-pri-nazhatii-odnogo-checkbox.html)

zoOmer 20.11.2014 13:35

Появление кнопки «удалить отмеченные» при нажатии одного checkbox
 
Доброе утро знатоки.

Есть скрипт появление кнопки удалить отмеченные при нажатии одного из checkbox

http://jsfiddle.net/v4SBr/

Но он почему то работает только в фибле.

Подскажите почему так?
И как сделать чтоб работал везде.

jsnb 20.11.2014 15:42

jQuery небось не подключил?
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<style>
.hidden { display: none; }
</style>

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>

</head>
<body>
<form id="form">
    <input type="checkbox" id="cb1"/> <label for="cb1">Checkbox 1</label>
    <input type="checkbox" id="cb2"/> <label for="cb2">Checkbox 2</label>
    <input type="checkbox" id="cb3"/> <label for="cb3">Checkbox 3</label>
    <input type="checkbox" id="cb4"/> <label for="cb4">Checkbox 4</label>
    <button id="delete" class="hidden">Удалить отмеченные</button>
</form>        
<script>
$(function(){
 $('#form input:checkbox').change(function () {
    $('#delete').toggle($('#form input:checkbox:checked').length>0);
 }); 
});
</script>

</body>
</html>

danik.js 20.11.2014 15:43

Да не про то речь. "Фибля" (:D ) оборачивает js код в обработчик window.onload . А ты не оборачиваешь. Либо опусти скрипт вниз, чтоб на момент его выполнения твои чекбоксы уже загрузились, либо оберни в $(document).ready()

zoOmer 20.11.2014 15:44

jsnb, подключил

вот тут даже не робить

http://jsbin.com/qiyudaladu/1/edit

danik.js 20.11.2014 15:46

zoOmer, выполнение скрипта не откладывается до полной загрузки страницы. Поэтому скрипт отрабатывает до того, как появятся твои чекбоксы, и по-этому не работает как задумано )

zoOmer 20.11.2014 15:50

danik.js,
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<style>
.hidden { display: none; }
</style>

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>

</head>
<body>
<form id="form">
    <input type="checkbox" id="cb1"/> <label for="cb1">Checkbox 1</label>
    <input type="checkbox" id="cb2"/> <label for="cb2">Checkbox 2</label>
    <input type="checkbox" id="cb3"/> <label for="cb3">Checkbox 3</label>
    <input type="checkbox" id="cb4"/> <label for="cb4">Checkbox 4</label>
    <button id="delete" class="hidden">Удалить отмеченные</button>
</form>        
<script>
$(document).ready(function(){
$('#form input:checkbox').change(function () {
$('#delete').toggle($('#form input:checkbox:checked').length>0);
 }); 
});
 
</script>

</body>
</html>

так?

danik.js 20.11.2014 15:54

Ну если скрипт внизу, то ready ждать не нужно. Ну и либу jquery можешь тоже внизу подключать - так быстрей страница отображается. Если это конечно тебе важно )

zoOmer 20.11.2014 15:57

danik.js, Даже если в head ставлю не работает((

http://jsbin.com/qiyudaladu/1/edit?html,output

kostyanet 20.11.2014 16:01

ТС, не тупите, втыкайте свой скрипт сразу как только чек-боксы перечислены и все будет работать.

Сначала в DOM появляется чек, затем его хавает js. А если наоборот, то js обломится.

jsnb 20.11.2014 16:03

Я так и не понял, что у автора не работает. Вроде уже и код тут постился который прекрасно эту кнопку скрывает/раскрывает, а он всё недоволен.


Часовой пояс GMT +3, время: 10:21.