Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.03.2015, 18:41
Новичок на форуме
Отправить личное сообщение для demqn Посмотреть профиль Найти все сообщения от demqn
 
Регистрация: 25.10.2014
Сообщений: 4

show hide что то типа табов
как решить подобную задачу?

$(blocks).hide(); должен выключать блоки с классом "blocks"
после этого
$(elem).show(); должен включать блок с id который передался с onclick="show_hide(***)"
но не работает ! :(

в чем тут дело?
заранее спасибо
и простите за глупость!
эфект типа табов


<style type="text/css">
	div.blocks{display:none; width:600px;height:200px;float:left;}
	#one{background-color: green}
	#two{background-color: pink}
	#three{background-color: blue}
	div.but{display:block; width:200px; height:100px; float:left; border:1px solid #333;}
	</style>

	<script type="text/javascript">
         function show_hide(elem){
	   if( $(elem).css('display') == 'none' ){
	         $(blocks).hide();
	         $(elem).show();
	   } else {
	         $(elem).hide();	 
	   }
	}
</script>

</head>

<body>
	<div class="but" onclick="show_hide(one)">кнопка включения и выключения первого блока</div>
	<div class="but" onclick="show_hide(two)">кнопка включения и выключения второго блока</div>
	<div class="but" onclick="show_hide(three)">кнопка включения и выключения третьего блока</div>
	<div style="clear:both;"></div>
	<div class="blocks" id="one">one</div>
	<div class="blocks" id="two">two</div>
	<div class="blocks" id="three">three</div>
</body>
Ответить с цитированием
  #2 (permalink)  
Старый 22.03.2015, 19:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120

Сообщение от demqn
$(blocks).hide(); должен выключать блоки с классом "blocks"
превратите параметры в селекторы и будет вам счастье
Ответить с цитированием
  #3 (permalink)  
Старый 22.03.2015, 19:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120

открывашка 201
demqn,

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
    div.blocks{display:none; width:600px;height:200px;float:left;}
	#one{background-color: green}
	#two{background-color: pink}
	#three{background-color: blue}
	div.but{display:block; width:200px; height:100px; float:left; border:1px solid #333;}
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
  function show_hide(elem){
	         $('.blocks').not(elem).hide();
	         $(elem).toggle();
	}
  </script>
</head>

<body>
    <div class="but" onclick="show_hide('#one')">кнопка включения и выключения первого блока</div>
	<div class="but" onclick="show_hide('#two')">кнопка включения и выключения второго блока</div>
	<div class="but" onclick="show_hide('#three')">кнопка включения и выключения третьего блока</div>
	<div style="clear:both;"></div>
	<div class="blocks" id="one">one</div>
	<div class="blocks" id="two">two</div>
	<div class="blocks" id="three">three</div>
</body>

</html>
Ответить с цитированием
  #4 (permalink)  
Старый 23.03.2015, 07:13
Новичок на форуме
Отправить личное сообщение для demqn Посмотреть профиль Найти все сообщения от demqn
 
Регистрация: 25.10.2014
Сообщений: 4

о спасибо огромное, просто супер то что надо!
предполагал но не знал!

а как к элементу
<div class="but" onclick="show_hide('#one')">кнопка включения и выключения первого блока</div>
принажатии класс присвоить ?
сам попробую сделать
вроде не сложно
Ответить с цитированием
  #5 (permalink)  
Старый 23.03.2015, 07:22
Новичок на форуме
Отправить личное сообщение для demqn Посмотреть профиль Найти все сообщения от demqn
 
Регистрация: 25.10.2014
Сообщений: 4

Сообщение от рони Посмотреть сообщение
demqn,

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
    div.blocks{display:none; width:600px;height:200px;float:left;}
	#one{background-color: green}
	#two{background-color: pink}
	#three{background-color: blue}
	div.but{display:block; width:200px; height:100px; float:left; border:1px solid #333;}
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
  function show_hide(elem){
	         $('.blocks').not(elem).hide();
	         $(elem).toggle();
	}
  </script>
</head>

<body>
    <div class="but" onclick="show_hide('#one')">кнопка включения и выключения первого блока</div>
	<div class="but" onclick="show_hide('#two')">кнопка включения и выключения второго блока</div>
	<div class="but" onclick="show_hide('#three')">кнопка включения и выключения третьего блока</div>
	<div style="clear:both;"></div>
	<div class="blocks" id="one">one</div>
	<div class="blocks" id="two">two</div>
	<div class="blocks" id="three">three</div>
</body>

</html>
спасибо
скажите пожалуйста
как сделать чтобы еще чтобы при нажатии
сама кнопка принимала какой нибудь класс
для подстветки
сам не справлюсь с jquery вообще все плохо еще хуже чем с javascript )

Последний раз редактировалось demqn, 23.03.2015 в 07:34.
Ответить с цитированием
  #6 (permalink)  
Старый 23.03.2015, 08:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120

Сообщение от demqn
для подстветки?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
    .active{background: #FFE4B5;}
    div.blocks{display:none; width:600px;height:200px;float:left;}
	#one{background-color: green}
	#two{background-color: pink}
	#three{background-color: blue}
	div.but{display:block; width:200px; height:100px; float:left; border:1px solid #333;}
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
  function show_hide(event,elem){
	         $('.blocks').not(elem).hide();
	         $(elem).toggle();
             $('.but').not(event.target).removeClass('active');
	         $(event.target).toggleClass('active');

	}
  </script>
</head>

<body>
    <div class="but" onclick="show_hide(event,'#one')">кнопка включения и выключения первого блока</div>
	<div class="but" onclick="show_hide(event,'#two')">кнопка включения и выключения второго блока</div>
	<div class="but" onclick="show_hide(event,'#three')">кнопка включения и выключения третьего блока</div>
	<div style="clear:both;"></div>
	<div class="blocks" id="one">one</div>
	<div class="blocks" id="two">two</div>
	<div class="blocks" id="three">three</div>
</body>

</html>
Ответить с цитированием
  #7 (permalink)  
Старый 23.03.2015, 08:17
Новичок на форуме
Отправить личное сообщение для demqn Посмотреть профиль Найти все сообщения от demqn
 
Регистрация: 25.10.2014
Сообщений: 4

СУПЕР! Всю голову сломал! как сделать не нашел
только тут и помогли СПАСИБО ВАМ ЗА ТО ЧТО ВЫ ЕСТЬ
СУПЕР КАЧЕСТВЕННЫЙ САППОРТ
Ответить с цитированием
  #8 (permalink)  
Старый 23.03.2015, 08:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120

Открывашка - нормальный вариант подключения
demqn, открывашка 203
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .active{background: #FFE4B5;}
    div.blocks{display:none; width:600px;height:200px;float:left;}
	#one{background-color: green}
	#two{background-color: pink}
	#three{background-color: blue}
	div.but{display:block; width:200px; height:100px; float:left; border:1px solid #333;}
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
    $(function() {
    var $but = $(".but"),
        $blocks = $(".blocks");
    $but.each(function(i, elem) {
        var $el = $(elem);
        $el.click(function() {
            $but.not($el).removeClass("active");
            $el.toggleClass("active");
            $blocks.filter(function(j, el) {
                i == j && $(el).toggle();
                return i != j
            }).hide()
        })
    })
});
  </script>
</head>

<body>
    <div class="but" >кнопка включения и выключения первого блока</div>
	<div class="but" >кнопка включения и выключения второго блока</div>
	<div class="but" >кнопка включения и выключения третьего блока</div>
	<div style="clear:both;"></div>
	<div class="blocks" id="one">one</div>
	<div class="blocks" id="two">two</div>
	<div class="blocks" id="three">three</div>
</body>

</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как (эффективно) изучать JavaScript? JSTalker Общие вопросы Javascript 33 23.12.2010 03:13
Zend и Pear для нуба mycoding Серверные языки и технологии 52 13.12.2010 18:32
Разбираем AjaxOOP eai Общие вопросы Javascript 41 04.11.2010 23:37
Что такое команда hide? Hagrael Events/DOM/Window 7 17.02.2010 08:43
Браузер доказывает что не видит функцию SleepWalker Общие вопросы Javascript 7 17.06.2009 23:14