Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.04.2013, 23:15
Аспирант
Отправить личное сообщение для onuvidelsolnce Посмотреть профиль Найти все сообщения от onuvidelsolnce
 
Регистрация: 18.01.2011
Сообщений: 44

Сворачивание блока при клике в любом месте страницы
На странице имеется div который рзворачивается и сворачивается при клике на кнопку. Вот код(с использование jquery):

$(document).ready(function (){
 $(" элемент_кнопка_скрыть/показать").click(function(){
 	$("элемент_блоксворачивается /разворачивается").slideToggle('normal');
	return false
  });
});


Хотелось бы что бы это div сворачивался(находясь в развернутом сосоянии) так же при клике в любом месте страницы, кроме щелчках внути него самого. Нашел код как это сделать:

$(document).click( function(event){
      if( $(event.target).closest("элемент_блоксворачивается /разворачивается").length ) 
        return;
      $("элемент_блоксворачивается /разворачивается").fadeOut("slow");
      event.stopPropagation();
    });



Как объеденить два кода что бы второй не нарушил работы первого, а лишь дополнилнял его... Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 15.04.2013, 00:40
Аватар для bret
Кандидат Javascript-наук
Отправить личное сообщение для bret Посмотреть профиль Найти все сообщения от bret
 
Регистрация: 04.10.2008
Сообщений: 128

Как-то так оно должно работать:
$(document).ready(function () {

	$(document).click( function(event) {
		if( $(event.target).closest("элемент_блоксворачивается /разворачивается").length ) {
			$("элемент_блоксворачивается /разворачивается").slideToggle('normal');
			event.stopPropagation();
		} else {
			$("элемент_блоксворачивается /разворачивается").fadeOut("slow");
		}
		return;
	});
	
});
__________________
я подыскиваю мозг... твой подойдёт
Ответить с цитированием
  #3 (permalink)  
Старый 15.04.2013, 12:10
Аспирант
Отправить личное сообщение для onuvidelsolnce Посмотреть профиль Найти все сообщения от onuvidelsolnce
 
Регистрация: 18.01.2011
Сообщений: 44

bret, не работает. Блок перестал разворачиваться...

Вот сделал мою ситуацию в песочнице.. Еще раз поворюсь хотелось бы что бы при развернутом div он сворачивался при щелчке в любом мечсте страницы

http://learn.javascript.ru/play/UemUKb

И для этого нужно истользовать след. код

$(document).click( function(event){
      if( $(event.target).closest("элемент_блоксворачивается /разворачивается").length ) 
        return;
      $("элемент_блоксворачивается /разворачивается").fadeOut("slow");
      event.stopPropagation();
    });

Последний раз редактировалось onuvidelsolnce, 15.04.2013 в 12:19.
Ответить с цитированием
  #4 (permalink)  
Старый 15.04.2013, 12:25
Аватар для bret
Кандидат Javascript-наук
Отправить личное сообщение для bret Посмотреть профиль Найти все сообщения от bret
 
Регистрация: 04.10.2008
Сообщений: 128

http://jsfiddle.net/br3t/Htfwp/
Если необходимо, чтобы клик внутри дива не закрывал его - добавляйте дополнительные условия
__________________
я подыскиваю мозг... твой подойдёт
Ответить с цитированием
  #5 (permalink)  
Старый 15.04.2013, 12:57
Аспирант
Отправить личное сообщение для onuvidelsolnce Посмотреть профиль Найти все сообщения от onuvidelsolnce
 
Регистрация: 18.01.2011
Сообщений: 44

bret, О! почти то что нужно. Только одно но... При щелчке на самом развернутом div он тоже сворачивается...
Ответить с цитированием
  #6 (permalink)  
Старый 15.04.2013, 13:33
Аватар для bret
Кандидат Javascript-наук
Отправить личное сообщение для bret Посмотреть профиль Найти все сообщения от bret
 
Регистрация: 04.10.2008
Сообщений: 128

Сообщение от bret Посмотреть сообщение
Если необходимо, чтобы клик внутри дива не закрывал его - добавляйте дополнительные условия
см. выше
__________________
я подыскиваю мозг... твой подойдёт
Ответить с цитированием
  #7 (permalink)  
Старый 15.04.2013, 13:35
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

<html><head>
<style>
#div {
 width: 100px ;
 height: 100px ;
 background: green ;
 display: none ;
}
</style>
<script src="http://code.jquery.com/jquery.min.js"></script>
<script>
$(function() {
 var div = $("#div") ;
 div.on("click", false) ;
 $("#click").on("click", function(e) {
  div.slideDown() ;
  e.stopPropagation() ;
 }) ;
 $(document).on("click", "body", function() {
  div.slideUp() ;
 }) ;
}) ;
</script></head><body>
<div id="div"></div>
<button id="click">CLICK ME</button>
</body></html>
__________________
★ ²º¹³ ☆
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить цвет при клике AndreyS jQuery 3 07.10.2012 16:27
Выезжающие\уезжающие div при загрузке страницы goodkot Элементы интерфейса 1 28.09.2012 08:58
Как при прокрутке страницы оставлять элемент на месте? FRIE jQuery 1 02.08.2012 20:54
Изменение фона элемента при клике. psydo Элементы интерфейса 8 28.06.2012 23:53
Задача такова : нужно при клике на ссылку открыть страницу с новой вкладке, оставаясь asustekk Javascript под браузер 4 25.05.2012 14:04