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>