webForumDet fria alternativet

Dölja lager med bild, jQuery

12 svar · 709 visningar · startad av Ewik

EwikMedlem sedan apr. 200491 inlägg
#1

Jag fick för ett tag sedan hjälp med att skapa det här scriptet till jQuery. Det funkar kanonbra men jag skulle vilja få in en bild som när man klickar på den döljer lagret igen och inte bara som det är nu att den döljer lagret när man klickar på samma rubrik igen.

$(function(){
	$("#main div").hide();
	$("#toc a").click(function(){
	    var that = this;
	    $("#toc a").each(function()
	    {
	        var id = $(this).attr("href");
	        if(this == that) { $(id).parent().toggle().addClass('show'); }
	        else { $(id).parent().hide().removeClass('show');}
	    });
    });
});
<ul id="toc">
    <li><a href="#rubrik1">Rubrik 1</a></li>
    <li><a href="#rubrik2">Rubrik 2</a></li>
    <li><a href="#rubrik3">Rubrik 3</a></li>
</ul>
<div>
    <h2 id="rubrik1">Rubrik 1</h2>
    <p>Lorem ipsum...</p>
</div>
<div>
    <h2 id="rubrik2">Rubrik 2</h2>
    <p>Lorem ipsum...</p>
</div>
<div>
    <h2 id="rubrik3">rubrik 3</h2>
    <p>Lorem ipsum...</p>
</div>
EwikMedlem sedan apr. 200491 inlägg
#2

Här har jag lagt upp en sida som visar hur det funkar just nu.
http://ewik.se/test/show/

Det jag vill är alltså att när man klickar för att visa rutan så ska det läggas in en bild i rutan. Bilden ska man kunna klicka på och rutan ska försvinna. Det ska alltså fungera som en stängknapp.

Är det väldigt omständigt att fixa?

voigtann1Medlem sedan juni 20019 519 inlägg
#3

och var skall "bilden" vara i din kod?

EwikMedlem sedan apr. 200491 inlägg
#4

Bilden ska ligga sist i diven som visas.

voigtann1Medlem sedan juni 20019 519 inlägg
#5

dynamiskt eller kommer du placera den med ren HTML?

EwikMedlem sedan apr. 200491 inlägg
#6

min tanke var att den skulle placeras dynamiskt

voigtann1Medlem sedan juni 20019 519 inlägg
#7

dynamiskt menar jag med javascript, inte server-side. Är det det du är ute efter? Vad kommer bilden att ha för källa exempelvis eller det spelar ingen roll?

EwikMedlem sedan apr. 200491 inlägg
#8

Bilden ska placeras ut med javascript. Vad menar du med källa?

voigtann1Medlem sedan juni 20019 519 inlägg
#9

källa = source = src...
men lägg in detta i din kod:

			$("#main div").each(function(){
				var img = new Image();
				$(img).attr("src","http://www.webforum.nu/images/wfstandard/logo_webforum.gif");
				$(img).click(function(){
					$(this).parent().hide().removeClass('show');
				});
				$(this).append(img);
			});

innan

$("#main div").hide();
EwikMedlem sedan apr. 200491 inlägg
#10

Sjysst, det funkar kanon bra. Tack för hjälpen.

EwikMedlem sedan apr. 200491 inlägg
#11

Nu har jag upptäckt att det här inte fungerar något vidare i varken IE 6 eller 7. 8:an har jag inte kollat i.
Divarna döljs inte utan ligger framme hela tiden.

Någon kunnig som vet vad det beror på?
Det ligger en testsida här: http://ewik.se/test/show/

voigtann1Medlem sedan juni 20019 519 inlägg
#12

Om du debugar koden, ta bort delar och se när det fungera,
du har satt en class vilket är ett researverat ord, du får använa det som strängar istället:

$(function(){
	$("#main div").hide();
	$("#main div").each(function(){
		var img = new Image();
		$(img).attr({ 
			[b][red]"src": "http://www.webforum.nu/images/wfstandard/logo_webforum.gif",
			"title": "jQuery",
			"alt": "jQuery Logo",
			"class": "close"[/red][/b]
		});
		$(img).click(function(){
			$(this).parent().hide().removeClass("show");
		});
		$(this).append(img);
	});
	$("#toc a").click(function(){
	    var that = this;
	    $("#toc a").each(function()
	    {
	        var id = $(this).attr("href");
	        if(this == that) { $(id).parent().toggle().addClass('show'); }
	        else { $(id).parent().hide().removeClass('show');}
	    });
    });
});
EwikMedlem sedan apr. 200491 inlägg
#13

Sjysst, tack för hjälpen.

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)