Помогите назначить обработчик для всех чекбоксов?
Не работает ничего :(
function save_checkbox(check) // В функцию передается индекс объекта { var name = check.id // Получить id(имя) объекта localStorage[name] = check.checked ? 1 : 0 // Записать в память ключ = состояние alert('12 ' + name) // Поверка. Вообще не вызывается (( } document.addEventListener("DOMContentLoaded", function() // После загрузки всех объектов на странице { var list = document.querySelectorAll("checkbox") // Найти список чекбоксов for(var i = 0; i < list.length; i++) // Цикл по списку { list[i].addEventListener('click', save_checkbox) // Назначить чекбоксу обработчик, передать в него его индекс } }) На странице чекбоксов около 20. <td align="center"><input type="checkbox" id="123sf"></td> <td align="center"><input type="checkbox" id="32dfs"></td> <td align="center"><input type="checkbox" id="4df"></td> <td align="center"><input type="checkbox" id="df34"></td> Нужно чтобы при клике какого - то из них вызвалась функция save_checkbox и в неё передался индекс чекбокса. |
Цитата:
Цитата:
|
О, вот так начал работать обработчик:
var list = document.querySelectorAll('input[type="checkbox"]') // Найти список чекбоксов Но идентификатор чекбокса не передаётся... |
Артист,
function save_checkbox() { var name = this.id // Получить id(имя) объекта localStorage[name] = this.checked ? 1 : 0 // Записать в память ключ = состояние alert('12 ' + name) // Поверка. Вообще не вызывается (( } document.addEventListener("DOMContentLoaded", function() // После загрузки всех объектов на странице { var list = document.querySelectorAll('[type="checkbox"]') // Найти список чекбоксов for(var i = 0; i < list.length; i++) // Цикл по списку { list[i].addEventListener('click', save_checkbox) // Назначить чекбоксу обработчик, передать в него его индекс } }) |
Цитата:
Подправьте пожалуйста. В функции save_checkbox я использую id="123sf" как ключ для сохранения. Поэтому нужно как - то его получить в функцию должно же что - то передаться... |
Цитата:
Спасибо большое )) |
|
Я просто загрузку убрал, так - то готово всё:
function save_checkbox() { localStorage[this.id] = this.checked ? 1 : 0 } function load_checkbox() { var table = document.getElementById('resources') var input = table.getElementsByTagName('input') for(var i = 0; i < input.length; i++) { var check = input[i] check.checked = localStorage[check.id] == '1' ? true : false } } document.addEventListener("DOMContentLoaded", function() { var list = document.querySelectorAll('[type="checkbox"]') for(var i = 0; i < list.length; i++) { list[i].addEventListener('click', save_checkbox) } load_checkbox() }) |
|
Артист,
если инпуты в таблице, достаточно установить клик только на таблицу. https://learn.javascript.ru/event-delegation |
Спасибо ))
Ещё вопрос, почти по теме. Как найти кнопку в таком коде: <script type="text/javascript"> function odOnClick(t) { window.open('http://www.odnoklassniki.ru/oauth/authorize?client_id=25756160&response_type=code&redirect_uri=http://'+document.location.host+'/login_od.php','odnoklassniki','width=600,height=400'); } </script> <table style="width:112px; height:30px;" border="0" cellpadding="0" cellspacing="0"> <tr> <td style="width:28px; height:30px;"> <div class="social"> <a href="javascript:void(0);" class="menu09" onClick="vkOnClick(this); return false;">Вконтакте <span title="Войти через Вконтакте"></span> </a> </div> <br class="cleaner"> </td> </tr> </table> Здесь так - то есть всё уже, просто я для гугл хрома делаю дополнение, а там нельзя скрипты в странице размещать. Вот и переношу всё в .js файлы. |
document.querySelector('a[class="menu09"]') ?
|
Артист,
window.addEventListener('DOMContentLoaded', function() { var item = document.querySelector('.social a'); item.addEventListener('click', function(event) {event.preventDefault(); // ваш код }) }); |
Ага, получилось ))
Спасиб )) |
Часовой пояс GMT +3, время: 12:04. |