11499 sujets

JavaScript, DOM et API Web HTML5

Salut tout le monde,

Quelqu'un sait comment fait mon jquery pour compter double chaque clic ? Voici mon code :

D'un coté une image map.

<img id='salle' src='img.chambre.php?sol=1&mur=1&coffre=1&lit=0&drap=1' alt='Manoir' bubble='Manoir' usemap="#map" />
    <map name="map" class="clicable"><area shape="rect" coords="2,189,135,299" id="coffre" /></map> [/img]


De l'autre un jquery tout simple :

$('#coffre').click(function()
{
	alert('je m enclenche ?');
	$('#meubles').toggle();
	$('#inventaire').toggle();
	$('#ContenuCoffre').toggle();
});


Ne voyant pas le toggle(), j'ai mis l'alert en place et le résultat est éloquent... je reçois 2 messages d'alerte "je m'enclenche ?"; preuve qu'il passe deux fois.

La question, c'est je règle ça comment ? Quelqu'un a une idée ?

(notons qu'avec une image non générée par PHP, ça ne change rien)


Edit, j'ai le problème sur un autre morceau du même script :

<a id='test-drap-4' class='test'>Tester</a>
         <br /><a id='instal-drap-4' class='install'>Installer</a>


$('.install').click(function()
{
	var idclick=$(this).attr("id");
	var decoupe = idclick.split("-"); 
	var meuble=decoupe[1];var version=decoupe[2];
	var skin=$('#salle').attr('src');
	//test-sol-2
	
	function retour_install_php(jayson)
	{
		if(jayson['ok']=1)
		{
			var decoupe = skin.split("?");
			var url=decoupe[0]; //img.chambre.php
			
			var decoupe = decoupe[1].split("&");
			
			var TVersion=new Array();var TMeuble=new Array();var j=1;
			$.each(decoupe,function(attribut,valeur)
			{
				var decoupebis = valeur.split("=");
				if(decoupebis[0]==meuble){TVersion[j]=version;}
				else{TVersion[j]=decoupebis[1];}
				TMeuble[j]=decoupebis[0];
				j++;
			});
			//sol=>1&mur=>1&coffre=>0&lit=>0&drap=>0
			var src=url+"?";
			var i=1;
			for(var i=1;i<j;i++)
			{
				if(i!=1){src=src+"&";}
				src=src+TMeuble[i]+"="+TVersion[i];
			};
			$('#salle').attr('src',src);
		}
	}
	$.ajax({
		url:"ajax.manoir.php",
		type:'GET',
		data: "choix=install&meuble="+meuble+"&version="+version+"",
		dataType: 'json',
		success: retour_install_php,
	});
});


Alors que la fonction sur la classe .test ne double pas...

$('.test').click(function()
{
	var idclick=$(this).attr("id");
	var decoupe = idclick.split("-"); 
	var meuble=decoupe[1];var version=decoupe[2];
	var skin=$('#salle').attr('src');
	//test-sol-2
	
	var decoupe = skin.split("?");
	var url=decoupe[0]; //img.chambre.php
	
	var decoupe = decoupe[1].split("&");
	
	var TVersion=new Array();var TMeuble=new Array();var j=1;
	$.each(decoupe,function(attribut,valeur)
	{
		var decoupebis = valeur.split("=");
		if(decoupebis[0]==meuble){TVersion[j]=version;}
		else{TVersion[j]=decoupebis[1];}
		TMeuble[j]=decoupebis[0];
		j++;
	});
	//sol=>1&mur=>1&coffre=>0&lit=>0&drap=>0
	var src=url+"?";
	var i=1;
	for(var i=1;i<j;i++)
	{
		if(i!=1){src=src+"&";}
		src=src+TMeuble[i]+"="+TVersion[i];
	};
	$('#salle').attr('src',src);
});
[/i][/i][/i][/i]
Modifié par Lothindil (03 Sep 2013 - 17:46)