Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.08.2012, 11:12
Интересующийся
Отправить личное сообщение для zakbc Посмотреть профиль Найти все сообщения от zakbc
 
Регистрация: 23.08.2012
Сообщений: 12

Переключение между табами
Здравствуйте,

Есть такой код табов:
<div class="tabs">
<!-- Это сами вкладки -->
    <ul class="tabNavigation">
        <li><a class="" href="#first">Первый</a></li>
        <li><a class="" href="#second">Второй</a></li>
        <li><a class="" href="#third">Третий</a></li>
    </ul>
<!-- Это контейнеры содержимого -->    
    <div id="first">
        <h2>Первый</h2>
    </div>
    <div id="second">
        <h2>Второй</h2>
    </div>
    <div id="third">
        <h2>Третий</h2>
    </div>
</div>

Скрипт:
$(function () {
    var tabContainers = $('div.tabs > div'); 
    tabContainers.hide().filter(':first').show(); 
    $('div.tabs ul.tabNavigation a').click(function () {
        tabContainers.hide(); 
        tabContainers.filter(this.hash).show(); 
        $('div.tabs ul.tabNavigation a').removeClass('selected'); 
        $(this).addClass('selected'); 
        return false;
    }).filter(':first').click();
});

div.tabs {
background: #333;
padding: 1em;
}

div.container { 
margin: auto; 
width: 90%; 
margin-bottom: 10px;
}

ul.tabNavigation {
list-style: none;
margin: 0;
padding: 0;
}

ul.tabNavigation li {
display: inline;
}

ul.tabNavigation li a {
padding: 3px 9px;
background-color: #666;
color: #000;
text-decoration: none;
}

ul.tabNavigation li a.selected,
ul.tabNavigation li a.selected:hover {
background: #FFF;
color: #000;
}

ul.tabNavigation li a:hover {
background: #ccc;
color: #000;
}

ul.tabNavigation li a:focus {
outline: 0;
}

div.tabs div {
padding: 5px;
margin-top: 3px;
border: 1px solid #FFF;
background: #FFF;
}

div.tabs div h2 {
margin-top: 0;
}

Хочу добавить кнопки "Далее" и "Назад",
Пробовал как вариант:
<input type="button" value="Далее" id="butt1"  />
<input type="button" value="Далее" id="butt2"  />

Скрипт:
$(document).ready(function () {
    $("#butt1").click(function () {
        $('#first').hide();
        $('#second').show();
    });
    $("#butt2").click(function () {
        $('#first').hide();
        $('#second').show();
    });
});​

Но табы вообще перестали работать.
Как можно добавить данные кнопки?
Плагин jcarousel не хотелось бы использовать. Плагин хороший, но не под такие задачи.

Заранее спасибо

Последний раз редактировалось zakbc, 28.08.2012 в 11:24.
Ответить с цитированием
  #2 (permalink)  
Старый 28.08.2012, 14:08
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

<style>
div.tabs {
background: #333;
padding: 1em;
}

div.container { 
margin: auto; 
width: 90%; 
margin-bottom: 10px;
}

ul.tabNavigation {
list-style: none;
margin: 0;
padding: 0;
}

ul.tabNavigation li {
display: inline;
}

ul.tabNavigation li a {
padding: 3px 9px;
background-color: #666;
color: #000;
text-decoration: none;
}

ul.tabNavigation li a.selected,
ul.tabNavigation li a.selected:hover {
background: #FFF;
color: #000;
}

ul.tabNavigation li a:hover {
background: #ccc;
color: #000;
}

ul.tabNavigation li a:focus {
outline: 0;
}

div.tabs div {
padding: 5px;
margin-top: 3px;
border: 1px solid #FFF;
background: #FFF;
}

div.tabs div h2 {
margin-top: 0;
}
</style>

<div class="tabs">
<!-- Это сами вкладки -->
	<ul class="tabNavigation" id="list">
		<li><input type="button" value="&#8592" id="butt1"  />
		<li><a class="" href="#first">Первый</a></li>
		<li><a class="" href="#second">Второй</a></li>
		<li><a class="" href="#third">Третий</a></li>
		<li><input type="button" value="&#8594" id="butt2"  />
	</ul>
	
<!-- Это контейнеры содержимого -->    
<div id="div">
    <div id="first">
        <h2>Первый</h2>
    </div>
    <div id="second" style="display: none">
        <h2>Второй</h2>
    </div>
    <div id="third" style="display: none">
        <h2>Третий</h2>
    </div>

</div>

<script>
window.onload = function () {
	var list = document.getElementById('list');
	var cur = document.getElementById('div').children[0];
	
	function sh(cur, next) {
		cur.style.display = 'none';
		next.style.display = 'block';
	}
	
	list.onclick = function (e) {
		e = e || event;
		var target = e.target || e.srcElement;
		var n = this.children.length;
		var elem;
		if (target == this.children[0].children[0]) {
			if (cur.previousSibling.previousSibling) {//previousElementSibling
				elem = cur.previousSibling.previousSibling;
				sh(cur, elem);
				cur = elem;
			}
		} else 
		if (target == this.children[n-1].children[0]) {
			if (cur.nextSibling.nextSibling) {//nextElementSibling
				elem = cur.nextSibling.nextSibling;
				sh(cur, elem);
				cur = elem;
			}
		} else 
		if (target.parentNode.parentNode == this) {
			elem = document.getElementById(target.getAttribute('href').replace('#', ''));
			sh(cur, elem);
			cur = elem;
		}
	}
	

}
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 28.08.2012, 16:05
Интересующийся
Отправить личное сообщение для zakbc Посмотреть профиль Найти все сообщения от zakbc
 
Регистрация: 23.08.2012
Сообщений: 12

а возможно кнопки вынести на сами табы, ваш пример отлично работает.
Но реализация кнопок - они сверху.
Например:
<div class="tabs">
<!-- Это сами вкладки -->
    <ul class="tabNavigation">
        <li><a class="" href="#first">Первый</a></li>
        <li><a class="" href="#second">Второй</a></li>
        <li><a class="" href="#third">Третий</a></li>
    </ul>
<!-- Это контейнеры содержимого -->    
    <div id="first">
        <h2>Первый</h2>
            <input type="button" value="&#8592" id="butt1"  />
    </div>
    <div id="second">
        <h2>Второй</h2>
            <input type="button" value="&#8594" id="butt2"  />
            <input type="button" value="&#8592" id="butt1"  />
    </div>
    <div id="third">
        <h2>Третий</h2>
            <input type="button" value="&#8594" id="butt2"  />
    </div>
</div>
Ответить с цитированием
  #4 (permalink)  
Старый 28.08.2012, 16:23
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

<style>
div.tabs {
background: #333;
padding: 1em;
}

div.container { 
margin: auto; 
width: 90%; 
margin-bottom: 10px;
}

ul.tabNavigation {
list-style: none;
margin: 0;
padding: 0;
}

ul.tabNavigation li {
display: inline;
}

ul.tabNavigation li a {
padding: 3px 9px;
background-color: #666;
color: #000;
text-decoration: none;
}

ul.tabNavigation li a.selected,
ul.tabNavigation li a.selected:hover {
background: #FFF;
color: #000;
}

ul.tabNavigation li a:hover {
background: #ccc;
color: #000;
}

ul.tabNavigation li a:focus {
outline: 0;
}

div.tabs div {
padding: 5px;
margin-top: 3px;
border: 1px solid #FFF;
background: #FFF;
}

div.tabs div h2 {
margin-top: 0;
}
</style>

<div class="tabs">
<!-- Это сами вкладки -->
    <ul class="tabNavigation" id="list">
        <li><a class="" href="#first">Первый</a></li>
        <li><a class="" href="#second">Второй</a></li>
        <li><a class="" href="#third">Третий</a></li>
    </ul>
<!-- Это контейнеры содержимого -->   
<div id="div" >
    <div id="first">
        <h2>Первый</h2>
            <input type="button" value="&#8594" class="next"  />
    </div>
    <div id="second" style="display: none">
        <h2>Второй</h2>
            <input type="button" value="&#8594" class="next"  />
            <input type="button" value="&#8592" class="previous"  />
    </div>
    <div id="third"  style="display: none">
        <h2>Третий</h2>
            <input type="button" value="&#8592" class="previous"  />
    </div>
</div>
</div>

<script>
window.onload = function () {
	var list = document.getElementById('list');
	var cur = document.getElementById('div').children[0];
	
	function sh(cur, next) {
		cur.style.display = 'none';
		next.style.display = 'block';
	}
	
	document.body.onclick = function (e) {
		e = e || event;
		var target = e.target || e.srcElement;
		var elem;
		if (target.className == 'previous') {
			if (target.parentNode.previousSibling.previousSibling) {//previousElementSibling
				elem = target.parentNode.previousSibling.previousSibling;
				sh(cur, elem);
				cur = elem;
			}
		} else 
		if (target.className == 'next') {
			if (cur.nextSibling.nextSibling) {//nextElementSibling
				elem = cur.nextSibling.nextSibling;
				sh(cur, elem);
				cur = elem;
			}
		} else 
		if (target.parentNode.parentNode.id == 'list') {
			elem = document.getElementById(target.getAttribute('href').replace('#', ''));
			sh(cur, elem);
			cur = elem;
		}
	}
	

}
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 28.08.2012, 19:32
Интересующийся
Отправить личное сообщение для zakbc Посмотреть профиль Найти все сообщения от zakbc
 
Регистрация: 23.08.2012
Сообщений: 12

Спасибо, отличный пример!
Ответить с цитированием
  #6 (permalink)  
Старый 23.09.2013, 17:03
Интересующийся
Отправить личное сообщение для Жекаизжека Посмотреть профиль Найти все сообщения от Жекаизжека
 
Регистрация: 26.04.2013
Сообщений: 18

может подскажете как еще сделать запоминание в куки?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переключение между divами MCB Элементы интерфейса 4 30.10.2011 13:03
Переключение между областями stasq AJAX и COMET 1 07.09.2010 23:03
Как реализовать переключение между опциями? libinstyle Events/DOM/Window 1 24.03.2010 10:05
Переключение между блоками uncle_fedor Элементы интерфейса 1 10.01.2010 19:01
Отследить переключение между вкладками mrpoma Events/DOM/Window 9 02.02.2009 11:47