Почему не робит?
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, время: 22:26. |