jQuery: Menü nach 1 Sekunde öffnen

RedShot

Mitglied
Hallo,

ich habe ein DropDown Menü, welches über jQuery faden lasse.
Code:
$('#navigationSub li').hover(function(e) {
	$(this).find('ul').css('display','none');
	$(this).find('ul').stop(true, true).fadeIn(500);
},function() {
	$(this).find('ul').css('display','block');
	$(this).find('ul').stop(true, true).fadeOut(500);
});

Nun möchte ich, dass das Submenü erst aufgeht, wenn der Mauscoursor mindestens eine Sekunde auf dem Hauptlink ist, ansonsten soll es einfach zubleiben.
Wie bewerkstellige ich das? Habe mir schon den Kopf zermartert mit window.setTimeout aber es will bei mir grade einfach nichts rauskommen wie ich das machen soll.

Grund dafür ist, ist, wenn man einfach nur mit der Maus über die Seite fährt und dann das Menü ungewollt aufgeht.

Danke schonmal für Hilfe und Viele Grüße
RS
 
mache im hover Event einfach folgendes:

Code:
$(this).animate({opacity:1},1000,"",function(){

        // Hier deine Aktion die nach 1000 ms ausgeführt werden soll.

})
 
Habe es jetzt so gelöst:

Code:
	$('#navigationSub li').hover(function(e) {
		actEl = $(this).find('ul');
		navTimer = window.setTimeout(function() {
			actEl.stop(true, true).fadeIn(500);
			navTimer = null;
		}, 300);
	},function() {
		actEl = $(this).find('ul');
		if(navTimer != null) {
			clearTimeout(navTimer);
			actEl.hide(0);
		} else {
		actEl.stop(true, true).pause(300).fadeOut(500);
		}
	});

Wahrscheinlich nicht ganz ideal aber wusste nicht wie ich es anders machen sollte.

@Avorin:
ich wollte das Menü nur öffnen, wenn der User mindestens 1 Sekunde auf dem Link bleibt. So geht das Menü ja trotzdem auf nach einer Sekunde, auch wenn ich längst nicht mehr auf dem Link bin

LG
 
nicht wenn du auf hoverOut

erst

$(this).stop();

dann

aktEl.stop();

aufrufst.
Aber mit setTimeout ist es sowieso sauberer.

Gruß
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück