webForumDet fria alternativet

Har ett problem med en jqueryfunktion - ni kanske kan hjälpa mig?

JavaScript

36 svar · 1 182 visningar · startad av bikic · sida 2 av 2

Frågan, av bikic

Jag håller på att skapa min portfolio - väldigt enkel men pedagogisk och korrekt. Jag använder mig först av en slide där man kan navigera med både knappar och mousewheel. När man klickar upp ett projekt så visar den projektet med både text och fler bilder av projektet. www.dekom.se So far so good... Till mitt problem. När man klickar upp ett projekt för att läsa mer så ha

Läs frågan i sin helhet →
Medlem sedan juni 2006261 inlägg
#21

Har hittat ett annat problem nu. Enligt Internet Explorer och Safari så reagerar den på .find()-funktionen tror jag. Kolla själv om du har tid. Vad kan det bero på?

Medlem sedan juni 20019 519 inlägg
#22

det är:

portfolioHover = {
			in: function(){
				$(this).find("img").fadeTo(360,0.30);
			},
			out: function() {
				$(this).find("img").fadeTo(360,1); 
			}
		},

den gnäller på, rad 42, "in" är förmodligen inte riktigt rätt där ;)

portfolioHover = {
			"in": function(){
				$(this).find("img").fadeTo(360,0.30);
			},
			"out": function() {
				$(this).find("img").fadeTo(360,1); 
			}
		},

kommer nog fungera bättre

Medlem sedan juni 20019 519 inlägg
#23

Flyttade allt med portfolio till ett objekt:

$(document).ready(function() {		
	var
		carouselOptions = {
			width: 955,
			scroll: {
				items: 1,
				duration: 500,
				pauseOnHover: true,
				mousewheel: true
			},
			auto: {
				play: false,
				pauseDuration: 5000,
				delay: 2000
			},
			items: {
				visible: 4
			},
			prev: {	
				button	: "#portfolio-prev",
				key		: "left"
			},
			next : { 
				button	: "#portfolio-next",
				key		: "right"
			}
		},
		portfolio = {
			hoverIn: function(){
				$(this).find("img").fadeTo(360,0.30);
			},
			hoverOut: function() {
				$(this).find("img").fadeTo(360,1); 
			},
			open = function(e) {
				var id = this.id.split("-")[1];
				$("#"+ id).fadeIn(600);
				$("#"+ id + "-slider").nivoSlider({
					effect:'fade',
					animSpeed:150,
					manualAdvance:true,
					directionNav:true, 
					pauseOnHover:true
				});
				e.preventDefault();
			}
		};
	// Portfolio
	
	$("#portfolio ul").carouFredSel(carouselOptions)
		.find("li")
			.hover(portfolio.hoverIn, portfolio.hoverOut)
				.find("a")
					.click(portoflio.open);
					
	$('.portfolio-back').click(function(){
		$('.explore-portfolio').fadeOut(600,function(){$('#portfolio').fadeIn(600);});	
		return false;
	});
	
});
Medlem sedan juni 2006261 inlägg
#24

Det funkar inte alls, massa fel nu ;)

Men jag testade med ovan och den reagerar på massa ställen.

Medlem sedan juni 20019 519 inlägg
#25

fungera för mig, du måste ju uppdatera anropen med:

....hover(portfolio.hoverIn, portfolio.hoverOut)
				.find("a")
					.click(portoflio.open);
...
Medlem sedan juni 2006261 inlägg
#26

Om jag använder "in" och "out" så kommer jag förbi det bekymret, nästa steg är:

.hover(portfolioHover.in, portfolioHover.out)

Fel på den raden.

Medlem sedan juni 20019 519 inlägg
#27

Ja, eftersom in är reserverat ord i Javascript det är därför jag har byggt om objektet portfolio, läs igenom all kod.

Medlem sedan juni 2006261 inlägg
#28

Självklart uppdaterade jag anropen, men den reagerade först på open = function.

Medlem sedan juni 20019 519 inlägg
#29

bikic skrev:

Självklart uppdaterade jag anropen, men den reagerade först på open = function.

Nej det hade du inte gjort, eftersom in och out inte finns längre.

Medlem sedan juni 20019 519 inlägg
#30

Om du vill köra med in exempelvis så få du köra:

.hover(portfolioHover["in"], portfolioHover["out"])
Medlem sedan juni 2006261 inlägg
#31

Nu har jag lagt upp det igen - och se - det fungerar inte alls.

http://www.dekom.se

Medlem sedan juni 20019 519 inlägg
#32

ahh, miss av mig, läs felmeddelandet ;) "=" skall det ju inte vara :)

portfolio = {
	hoverIn: function(){
		$(this).find("img").fadeTo(360,0.30);
	},
	hoverOut: function() {
		$(this).find("img").fadeTo(360,1); 
	},
	open: function(e) {
		var id = this.id.split("-")[1];
		$("#"+ id).fadeIn(600);
		$("#"+ id + "-slider").nivoSlider({
			effect:'fade',
			animSpeed:150,
			manualAdvance:true,
			directionNav:true, 
			pauseOnHover:true
		});
		e.preventDefault();
	}
};

är det korrekta objektet ;)

Medlem sedan juni 2006261 inlägg
#33

Det listade ju jag ut direkt men det är ett fel till och det är felstavningen på "portfolio" vid anropen. Men nu verkar allt fungera riktigt bra och jag har lärt mig sjukt mycket av det här. Intressant och riktigt lärorikt.

Tack Voigt!

Medlem sedan juni 20019 519 inlägg
#34

Glöm inte sätt tråden som löst ;)

Medlem sedan juni 2006261 inlägg
#35

Självklart löser jag det. vet bara inte vilket av alla svar jag ska markera som lösning. Hehe! Återigen Voigt, tack som fan! Uppskattas verkligen!

Vad tycker du om upplägget med portfolion då?

Medlem sedan juni 20019 519 inlägg
#36

Du skall inte fråga mig om design råd ;) HTML strukturen hade jag kanske gjort annolunda, AJAX callcks och fått sidan att fungera utan JS, utan alla features. Men thats just me :)

Medlem sedan sep. 20051 758 inlägg
#37

bikic skrev:

vet bara inte vilket av alla svar jag ska markera som lösning.

Betrakta http://www.webforum.nu/showthread.php?t=179609&page=4#85

336 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
208 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
208 ms — ändringar (db)