Помогите назначить обработчик для всех чекбоксов?
Не работает ничего :(
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, время: 13:17. |