Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/09/2011, 15h11   #1
Nouveau Membre du Club
 
Homme zohac
Inscription : février 2007
Messages : 22
Détails du profil
Informations personnelles :
Nom : Homme zohac
Âge : 31
Localisation : France

Informations forums :
Inscription : février 2007
Messages : 22
Points : 27
Points : 27
Par défaut inclure un timer sur un mouseover.

Bonjour,

Je préfère prévenir, le javascript, c'est pas trop mon truc (plutôt PHP).

Alors voilà le truc :

J'ai une série d'image miniature avec une class "vignette" et id unique pour chacune (forcément).
Lorsque je les survole, une barre d'édition doit apparaître. Jusque là ça fonctionne bien.
Maintenant, je voudrait inclure un timer pour éviter d'afficher la barre d'édition lors de survole accidentel.

En gros, si survole de la vignette pendant 2 seconde, afficher la barre d'édition, sinon la cacher.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
var compteur = 0;
var secondes = 0;
 
$("div.vignette").hover(
	function()
	{
		// mouseover
		var id =  $(this).attr('id');
		compteur = setInterval(
			function (id)
			{
				secondes ++;
				if ( secondes == 2 )
				{
					$("#" + id).find("div.edit-bar").show("slow");
				}
			}, 1000);
	},
	function()
	{
		// mouseout
		$(this).find("div.edit-bar").hide("slow");
 
		clearInterval(compteur );
		_seconds = 0;
	}
);
D'après les test que j'ai fait, je n'arrive pas à passer le paramètre "id" à la fonction du setInterval.

C'est surement tout con, mais là je sèche .

Merci pour votre aide, sur ce, je retourne consulter les forum pour essayer de résoudre ce petit problème.
fenrir0680 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 21h44   #2
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonsoir

Dans setInterval, il s'agit d'une fonction anonyme sans paramètres. Le paramètre id existe déjà dans la fonction "mouseenter", voir le code.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var compteur = 0;
var secondes = 0;
 
$("div.vignette").hover(
	function(){ // mouseenter
		var id =  $(this).attr('id');
 
		compteur = setInterval(function(){
			secondes ++;
 
			if ( secondes == 2 ){
				$("#" + id).find("div.edit-bar").show("slow");
			}
		}, 1000);
	},
	function(){ // mouseleave
		$(this).find("div.edit-bar").hide("slow");
 
		clearInterval(compteur );
 
		_seconds = 0; // ?? secondes 
	}
);
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 21h58   #3
Nouveau Membre du Club
 
Homme zohac
Inscription : février 2007
Messages : 22
Détails du profil
Informations personnelles :
Nom : Homme zohac
Âge : 31
Localisation : France

Informations forums :
Inscription : février 2007
Messages : 22
Points : 27
Points : 27
Comme je le disais, ce doit-être tout con.

Et effectivement, le dernier _seconds, c'est une erreur de ma part, c'est bien secondes qu'il fallait lire.

Merci, c'est résolu
fenrir0680 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h44.


 
 
 
 
Partenaires

Hébergement Web