webForumDet fria alternativet

Dölja lager med bild, jQuery

JavaScriptur Javascript

12 svar · 709 visningar · startad av Ewik

Medlem sedan apr. 200491 inlägg
Frågan#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>
Medlem 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?

Medlem sedan juni 20019 519 inlägg
#3

och var skall "bilden" vara i din kod?

Medlem sedan apr. 200491 inlägg
#4

Bilden ska ligga sist i diven som visas.

Medlem sedan juni 20019 519 inlägg
#5

dynamiskt eller kommer du placera den med ren HTML?

Medlem sedan apr. 200491 inlägg
#6

min tanke var att den skulle placeras dynamiskt

Medlem 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?

Medlem sedan apr. 200491 inlägg
#8

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

Medlem 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();
Medlem sedan apr. 200491 inlägg
#10

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

Medlem 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/

Medlem 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');}
	    });
    });
});
Medlem sedan apr. 200491 inlägg
#13

Sjysst, tack för hjälpen.

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