Jquery problem med att använda samma kod på flera ställen

Permalänk

Jquery problem med att använda samma kod på flera ställen

Hej och God jul!

Jag hat gjort en portfolio med massa bilder i och klicka man på en så får man upp en ny vy som visar bilden och massa andra bilder på samma sida i miniatyrer och när man klickar på en av dem så ska de visas.

<h2 class="fl">Portfolio</h2> <div class="back"></div> <div class="clearall"></div> <div id="portfolio"> <!-- jag har nio stycken av dessa men med olika bilder i --> <div class="photowrapper"> <div class="latest"></div> <div class="photo"> <div id="image"> <img src="bild.png"/> </div> </div> <div class="photocaption"> <a href="#portfolio" rel="bild1.png" class="image"> <img src="minbild1.png" class="thumb"/> </a> <a href="#portfolio" rel="bild2.png" class="image"> <img src="minbild1.png" class="thumb"/> </a> <a href="#portfolio" rel="bild3.png" class="image"> <img src="minbild3.png" class="thumb"/> </a> <a href="http://sida.se" class="sitename" target="_blank">sidans namn</a> </div> </div>

Jquery koden ser ut så här:

$(function() { //slidar ut photogallerit $(".photowrapper").click(function(){ $(this).animate({width: 720, height: 500}, 1000 ); $(this).removeClass('photowrapper').addClass('big'); $(".latest").hide(); $(".featured").hide(); $(".photowrapper").hide(); $(".image").slideDown("slow"); $(".back").fadeIn('slow'); }); //slidar in photogallerit $(".back").click(function(){ $(".big").animate({width: 225, height: 165}, "fast" ); $(".big").toggleClass('big photowrapper'); $(".image").hide(); $(".photowrapper").fadeIn('slow'); $(".latest").fadeIn('slow'); $(".featured").fadeIn('slow'); $(".back").fadeOut('fast'); }); //ändrar bild i photogalleriet $(".image").click(function() { var image = $(this).attr("rel"); $('#image').slideUp('slow'); $('#image').slideDown('slow'); $('#image').html('<img src="' + image + '"/>'); return false; }); });

Nu till mitt problem:

Mitt problem är att jag kan bytta bild i första vyn med minatyrerna men byter man till någon av dem andra vyrena så kan man inte ändra dem.

Varför???

Jag väldigt ny på Jquery så jag har kollat runt lite efter exempel och sen försökt skriva mina egna saker.

Hälsningar/
Granskog

Permalänk
Skrivet av granskog1:

Hej och God jul!

Jag hat gjort en portfolio med massa bilder i och klicka man på en så får man upp en ny vy som visar bilden och massa andra bilder på samma sida i miniatyrer och när man klickar på en av dem så ska de visas.

<h2 class="fl">Portfolio</h2> <div class="back"></div> <div class="clearall"></div> <div id="portfolio"> <!-- jag har nio stycken av dessa men med olika bilder i --> <div class="photowrapper"> <div class="latest"></div> <div class="photo"> <div id="image"> <img src="bild.png"/> </div> </div> <div class="photocaption"> <a href="#portfolio" rel="bild1.png" class="image"> <img src="minbild1.png" class="thumb"/> </a> <a href="#portfolio" rel="bild2.png" class="image"> <img src="minbild1.png" class="thumb"/> </a> <a href="#portfolio" rel="bild3.png" class="image"> <img src="minbild3.png" class="thumb"/> </a> <a href="http://sida.se" class="sitename" target="_blank">sidans namn</a> </div> </div>

Jquery koden ser ut så här:

$(function() { //slidar ut photogallerit $(".photowrapper").click(function(){ $(this).animate({width: 720, height: 500}, 1000 ); $(this).removeClass('photowrapper').addClass('big'); $(".latest").hide(); $(".featured").hide(); $(".photowrapper").hide(); $(".image").slideDown("slow"); $(".back").fadeIn('slow'); }); //slidar in photogallerit $(".back").click(function(){ $(".big").animate({width: 225, height: 165}, "fast" ); $(".big").toggleClass('big photowrapper'); $(".image").hide(); $(".photowrapper").fadeIn('slow'); $(".latest").fadeIn('slow'); $(".featured").fadeIn('slow'); $(".back").fadeOut('fast'); }); //ändrar bild i photogalleriet $(".image").click(function() { var image = $(this).attr("rel"); $('#image').slideUp('slow'); $('#image').slideDown('slow'); $('#image').html('<img src="' + image + '"/>'); return false; }); });

Nu till mitt problem:

Mitt problem är att jag kan bytta bild i första vyn med minatyrerna men byter man till någon av dem andra vyrena så kan man inte ändra dem.

Varför???

Jag väldigt ny på Jquery så jag har kollat runt lite efter exempel och sen försökt skriva mina egna saker.

Hälsningar/
Granskog

Det behövs mer information, får du något error i consolen?

Istället för .click(function() { }); kan du pröva med .live('click', function() {});

Permalänk

Ok var finns : error i consolen???

Det funkade inte

Permalänk
Medlem
Skrivet av granskog1:

Ok var finns : error i consolen???

Det funkade inte

har du installerat firebug? ISF trycker du på F12

Skickades från m.sweclockers.com

Permalänk
Skrivet av granskog1:

Ok var finns : error i consolen???

Det funkade inte

I Chrome högerklickar du, 'Granska komponent', välj 'Console'. I Firebug vet jag inte riktigt.

Permalänk

ok nu vet jag vad som är problemet den ändrar bild i första vyn hela tiden oavsett vilken vy man är i.
så klickar man på en miniatyr i tredje vyn så ändras det till den bilden i första vyn.

Hur kan jag lösa detta???

Fick inga fel i chrome

Permalänk
Medlem
Skrivet av granskog1:

ok nu vet jag vad som är problemet den ändrar bild i första vyn hela tiden oavsett vilken vy man är i.
så klickar man på en miniatyr i tredje vyn så ändras det till den bilden i första vyn.

Hur kan jag lösa detta???

Fick inga fel i chrome

ett tips är att ha en övergripande div som har ett unikt ID som du anropar och ändrar de underliggande värdena

T.ex $(ID).find('.class')....

Skickades från m.sweclockers.com

Permalänk
Skrivet av jonke:

ett tips är att ha en övergripande div som har ett unikt ID som du anropar och ändrar de underliggande värdena

T.ex $(ID).find('.class')....

Skickades från m.sweclockers.com

Kan du vissa med min kod. Jag förstår inte riktigt.

Permalänk
Medlem

Lite svårt från mobilen men kan försöka göra det senare

Skickades från m.sweclockers.com

Permalänk

Jag löste nu så som jonke sa men det tog lite tid, men bra blev det

Tack för all hjälp/
Granskog