Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   slideToggle_не закрывался активный блок (https://javascript.ru/forum/jquery/9612-slidetoggle_ne-zakryvalsya-aktivnyjj-blok.html)

baklanaft 27.05.2010 18:16

slideToggle_не закрывался активный блок
 
Вложений: 1
Как сделать чтобы не закрывался активный блок slideToggle.

http://atomilov.ozlab.ru/portfolio/architecture/zavod/

что было так:

micscr 28.05.2010 08:34

в куках запоминайте текущую вкладку.

Ну или на стороне сервера - через сессии.

exec 28.05.2010 09:34

if (location.href == …) {
$(…).show();
}


Смысл в том, чтобы сравнивать текущий URL с опр. значением и показывать нужный блок.

baklanaft 28.05.2010 11:17

эта штука в ie6 и ie7 никак не работает? или есть варианты.

micscr 28.05.2010 11:24

А как пишешь? Так:
var h = location.href;
if (h.indexOf('architecture') != -1) {
  // раскрыть вкладку архитектуры
}

?

baklanaft 28.05.2010 13:12

//Slide up and down on click
	$("li.trigger").click(function(){
		$(this).next(".toggle_container").slideToggle("slow");
    });
});


сейчаз вот так

micscr 28.05.2010 14:20

Цитата:

Сообщение от baklanaft (Сообщение 56825)
сейчаз вот так

Ну и что это такое? Я спрашивал как ты анализируя адрес страницы раскрываешь нужную вкладку при загрузке страницы.

p.s. Это надо делать в $(document).ready().

baklanaft 28.05.2010 15:42

я не знаю как это работает и в js -0:

код, который отвечает за раскрытие:
$(document).ready(function(){

	//Hide (Collapse) the toggle containers on load
	$(".toggle_container").hide(); 

	//Switch the "Open" and "Close" state per click
	$("li.trigger").toggle(function(){
		$(this).addClass("active");
		}, function () {
		$(this).removeClass("active");
	});

	//Slide up and down on click
	$("li.trigger").click(function(){
		$(this).next(".toggle_container").slideToggle("slow");
    });
});


все остальное в css.
он автоматически присваевает <ul id="submenu" class="toggle_container" style="display: none">
когда открыто style="display: block"

тоесть когда я заходу на http://atomilov.ozlab.ru/portfolio/architecture/zavod/ нужно чтобы показывал
<ul id="menu">
<li class="trigger active">
<a>Architecture</a>
</li>
<ul id="submenu" class="toggle_container" style="display: block">

micscr 28.05.2010 16:30

Я понимаю, целое ТЗ ты выставил. Вообще ты просишь готовый скрипт с нуля - а это робота которая обычно оплачивается. Но последовательность действий подскажу:
$(document).ready(function(){
  // твой код
  // ...
  // end твой код
  var where = ''; // где находимся
  var h = location.href;
  if (h.indexOf('architecture') != -1) {
    where = 'Architecture';
  } else if (){
    // другие назначения метки where
  }
  // Теперь нужно найти тот li.trigger в котором имеется <a>where</a>
  // Это можно сделать как то так:
  var $a = $('li.trigger a').filter(function(){return ($.trim($(this).text()) == where)});
  var $li = $a.eq(0).closest('li');
  // разворачиваем:
  $li.addClass("active");
});


Часовой пояс GMT +3, время: 04:53.