webForumDet fria alternativet

Behöver hjälp med multiple Toggle-funktion tillsammans med Cookie

JavaScript

4 svar · 498 visningar · startad av bikic

Medlem sedan juni 2006261 inlägg
Frågan#1
var panel = $(".toggle_container");
	var button = $("h2.trigger");
	var initialState = "expanded"; // "expanded" OR "collapsed"
	var activeClass = "active";
	var state = $.cookie("panelState");	
		
	if($.cookie("panelState") == undefined) {
		$.cookie("panelState", initialState);
	} 		
			
	if(state == "collapsed") {
		panel.hide();
		button.addClass(activeClass);
	}
		   
	button.click(function(){

		if($.cookie("panelState") == "expanded") {
			$.cookie("panelState", "collapsed");
			$(this).addClass(activeClass);
		} else {
			$.cookie("panelState", "expanded");
			$(this).removeClass(activeClass);
		}
				
		panel.slideToggle("fast");		
		return false;
	});

Så ser jskoden ut...och så här ser htmlkoden ut.

<div class="col-box-left">

	<h2 class="trigger">Rubrik</h2>

	<div class="toggle_container">
		<div class="box-left-column">
			asdasdasd
		</div>
	</div>

</div>

Nu till mitt problem. Jag vill kunna ha flera såna här funktioner på samma sida och det fungerar inte. Den triggar alla objekt samtidigt.

Jag måste hitta en lösning som gör att den tar den aktuella triggern och loggar cookies på just denna.

Går detta? Tacksam för hjälp!

Medlem sedan okt. 2007446 inlägg
#2

enklast är väl att ge varje h2.trigger ett unikt ID och sen plocka ut det för att klura ut vilken toggle_container som skall döljas/visas

nånting i stil med detta (fritt ur huvudet och otestat)

$("h2.trigger").click(function(){
var id = $(this).attr("id");
//rensa bort "t_"

panel = $("c_"+id);

panel.show()...
});

med HTML

   <h2 class="trigger" id="t_1">Rubrik</h2>

	<div class="toggle_container" id="c_1">
		<div class="box-left-column">
			asdasdasd
		</div>
	</div>

   <h2 class="trigger" id="t_2">Rubrik</h2>

	<div class="toggle_container" id="c_2">
		<div class="box-left-column">
			asdasdasd
		</div>
	</div>
Medlem sedan juni 20019 519 inlägg
#3

Eller så sparar du index:et på ditt h2 element så du vet vilket index som skall visas

Medlem sedan juni 2006261 inlägg
#4

rdhf: Jag vill helst undvika unika ID-nummer för just detta, då det ska användas vid flera olika sidor och funktioner.

Voigt: Är inte riktigt med på hur jag ska göra?

Medlem sedan juni 20019 519 inlägg
#5

bikic skrev:

rdhf: Jag vill helst undvika unika ID-nummer för just detta, då det ska användas vid flera olika sidor och funktioner.

Utan ID så kan det bli svårt om du har det på flera sidor, hur skall du någonsin kunna säga vad som skall visas på vilken sida? Om toggle-header #2 är öppen på sidan x vad hur skall du göra då att sidan y inte också skall ha toggle-header #2 vara öppen

bikic skrev:

Voigt: Är inte riktigt med på hur jag ska göra?

Se svaret ovan. Ser bara problem med/hur du egentligen vill använda koden du har...

Nu till mitt problem. Jag vill kunna ha flera såna här funktioner på samma sida och det fungerar inte. Den triggar alla objekt samtidigt.

Gör ett plugin som kapslar in grupper och inte alla headers på sidan.

300 ms totalt · 3 externa anrop · v20260731065814-full.f363f448
164 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)