[jQuery] Rozwijane menu - znikanie po kliknięciu

0

Witam, chcę zrobić menu w jQuery, linki mają po 34px szerokość, po najechaniu oraz po kliknięciu zmieniają tło oraz rozwijają się do 110px szerokości. Po opuszczeniu elementu zwijają się do tych 34px. Problem w tym że kiedy kliknę na link i opuszczę element to link się zwija. Siedzę nad tym już 4 godzinę i próbowałem na tysiąc różnych sposobów bez skutku. Proszę o pomoc.

		var x=a(this);
		
		x.find('a').click(function(){
			return false;
		});
		
		function mouseAction(obj,bg,width,display){
				$(obj).css('background',bg);
				$(obj).css('width',width);
				$(obj).find('strong').css('display',display);
		}
		
		x.find('a').click(function(){
			$(this).mouseout();
			mouseAction(this,'#518C11',h,'block');
		});	
		
		x.find('a').hover(
		  function () {
			mouseAction(this,'#518C11',h,'block');
		  }, 
		  function () {
			mouseAction(this,'#91C436',w,'none');
		  }
		);

Mam teraz taki kod ale nie mogę zatrzymać tego rozwinięcia po kliknięciu. Pozdrawiam.

0

czyli link ma się zwijać tylko przy opu8sczaniu nieklikniętego elementu, tak?

0

dokładnie tak. teraz jak kliknę to element się zwija, a powinien po opuszczeniu zostać rozwinięty.

0

może to trochę okrężne, ale:

  1. przy kliknięciu dodaj do obiektu klasę clicked
  2. w drugiej funkcji hovera, jeśli obiekt ma klasę clicked, to return, jeśli nie ma to kontynuuj, czyli zmień parametry
0

po pierwsze do tego typu rzeczy masz gotowe "pluginy" do jQuery - zajmują po parę kilobajtów i żaden "obciach" z nich skorzystać (na pewno nie większy niż samo korzystanie z jQuery), zwłaszcza gdy mają oszczędzić 4h ślęczenia nad pierdołą
po drugie

$(obj).css('background',bg);
$(obj).css('width',width);
$(obj).find('strong').css('display',display);

w jQuery możesz łączyć wyrażenia (wszystkie funkcje zwracają dalej elementy na których operowały) i zapisać ten kod w taki sposób:

$(obj).css('background', bg)
  .css('width', width)
  .find('strong')
  .css('display', display);

nie ładniej?

1 użytkowników online, w tym zalogowanych: 0, gości: 1