Hover on touchstart mit .delay funktioniert nur einmal

safeload

Ensign
Registriert
Juni 2010
Beiträge
244
Hallo, ich möchte gerne, daß meine iOS/webkit hover-Funktion-on touchstart ein timeout von ca 50-70 sekunden hat, um in dieser Zeit zu checken, ob nicht doch ein touchmove vorliegt, weil der user daß menu vertikal scrollt und dabei kein hover auftreten soll.

Da set timeout dabei nicht funktioniert (warum ist mir auch nicht klar...), habe ich hierzu , .delay (queue) verwendet.
Dies funktioniert soweit ganz gut aber wie der Titel sagt nur einmal (ohne reload der Seite), dann versagt die hover-Funktion ihren Dienst.

Code:
$('nav a, input.submit_button').on('touchstart', function () {

	$(this).delay(50).queue('fx', function () {
		$(this).addClass('universal_hover');
	});

	});
	$('nav a, input.submit_button').on('touchmove', function () {
		$('nav a, input.submit_button').removeClass('universal_hover');
	});
	$('nav a, input.submit_button').mouseenter(function () {
			$(this).addClass('universal_hover');
	});
	$('nav a, input.submit_button').mouseleave(function () {
		$('nav a, input.submit_button').removeClass('universal_hover');
	});
	$('nav a, input.submit_button').on('click', function () {
		setTimeout(function () {
			$('nav a, input.submit_button').removeClass('universal_hover');
		}, 3000);	});

Kann mir hier bitte jemand sagen wie ich es ändern muss, damit es kontinuierlich funktioniert?
 
Zuletzt bearbeitet:
Zurück
Oben