11548 sujets

JavaScript, DOM et API Web HTML5

bonjour.
je cherche à savoir si la liste déroulante d'un select est déroulée avec jquery ou javascript.

je me suis débrouillé pour faire réagir les select/options sous firefox ou chrome comme ceux sous IE, il me reste encore à éliminer les interférences de la roulette souris lorsque la liste du select est déroulée.

merci d'avance.
Bon,

J'ai fouillé un peu partout et c'est impossible soit de savoir qu'un <select> est ouvert, soit de forcer l'ouverture d'un <select>… Bref, je vois pas trop comment tu vas régler ton problème.
je pense pas que ce soit impossible, il doit bien y avoir l'information quelque part.
ce ne doit etre utilisable que sout firefox ou chrome, donc je pense que ca doit exister,
il faut juste trouver par ou passer.
Bon j'ai p'tet une piste pour toi, tu peux te baser sur les events mousedown() et blur() pour ajouter/supprimer une classe au select. De là, tu as juste à tester la présence de cette classe pour savoir si le select est ouvert ou non :


$(document).ready(function () {   
		
	var selectBox = $('#selectBox');
		
	selectBox.bind({
		mousedown: function() {
			selectBox.addClass("active");
		},
		blur: function() {
			selectBox.removeClass("active");
		},
		change: function() {
			$(this).trigger("blur");
		}

	});
			
});

Seul problème, on ne peut recliquer sur l’élément actif pour lancer le blur…
Modifié par ZeB_panam (26 Sep 2011 - 00:25)
hum, je chercherais plutot dans la structure du dom, dois bien y avoir ca quelque part..
ou meme la liste deroulante, elle doit bien etre l'enfant du select, si elle est cree au moment on doit bien pouvoir la troiuver, sauf, que moi je seche sur comment la trouveR.
est-ce que cette liste est créée au moment ou mise de cote ailleurs et affichée au besoin.? je sais pas, je cherche à comprendre.
si elle est créée, on devrait pouvoir tester son existence, si elle est depalcée, affichée, on devrait pouvoir tester son etat.