Почему не робит?
window.onload = function () { var tabs = document.getElementById('tabMenu').getElementsByTagName("*"); for (var i=0;i<=tabs.length-1;i+=2) { var tabID = tabs[i+1].id; console.log(tabID); document.getElementById('tabMenu').childNodes[i+1].childNodes[0].onclick = function() {tabSwitch(tabID);} } } Хочу навесить на три элемента динамически обработчик onclick события, вешается, но только tabID равен индексу последней третьей табы и переключение любое приводит к переходу на последнюю вкладку. В консоли чисто, tabID последовательно равен 1,2,3...В чем загвоздка? Код самого tabSwitch думаю, приводить не стоит, там все прозрачно и работает правильно, если обработчики повесить напрямую в свойстве onClick элементов. НО хочется же докопаться до истины, потому такой вариант прошу не предлагать. Чтобы не развивать Ваши телепатические способности, верстка: <ul id="tabMenu"> <li><a id="tab-1" class="active">Первая</a></li> <li><a id="tab-2">Вторая</a></li> <li><a id="tab-3">Третья</a></li> </ul> <div id="tabContent"> <div id="content-1"> 11111111111 </div> <div id="content-2"> 22222222222 </div> <div id="content-3"> 33333333333 </div> </div> |
Чернышков Николай,
истина уже непервая за сегодня таится здесь Пример ошибочного использования сделать что ли шаблон если квери аякс смотрите on если проблемы с циклом смотрите замыкания |
удалил
|
Да не нужны никакие замыкания.
<ul id="tabMenu"> <li><a id="tab-1" href="#content-1" class="active">Первая</a></li> <li><a id="tab-2" href="#content-2">Вторая</a></li> <li><a id="tab-3" href="#content-3">Третья</a></li> </ul> <div id="tabContent"> <div id="content-1"> 11111111111 </div> <div id="content-2"> 22222222222 </div> <div id="content-3"> 33333333333 </div> </div> <script> (function(){ var tabs = document.getElementById('tabMenu').getElementsByTagName("a"); for (var i = 0; i < tabs.length; i++) { tabs[i].onclick = onclick; } function onclick() { var id = this.hash.substring(1); alert(id); } })() </script> |
Рони спасибо!!! Даник.js , ты проверь, прежде чем что-то рекомендовать!!!
|
Вобще то цель - показать как можно получить id без всяких замыканий, а не показ/скрытие !!!
|
Я просил совсем о другом...
|
Цитата:
Вместо alert(id) написать tabSwitch(id) . Разница в одной строчке и это уже "совсем другое" ? |
Часовой пояс GMT +3, время: 02:31. |