2011-01-10 2 views
0

J'ai des problèmes avec un code jQuery en ce moment, je sais où se trouve le problème, mais je ne sais pas quel est le problème exactement. Probablement très basique, mais je suis nouveau à ce sujet.Aide simple syntaxe jQuery, je ne sais pas où je me suis trompé

Vous pouvez voir un (non) violon travailler ici: http://www.jsfiddle.net/CvZeQ/

Fondamentalement, je veux définir une fonction différente de .cliquez en fonction de ce qui est sélectionné (je 5 cartes d'image, chacune avec un #mapname différent, et que vous souhaitez chacun doit appartenir à une variable différente (réponse1, réponse2, réponse3 ...) afin de stocker la «réponse» sélectionnée pour chaque carte.)

Voici le code que j'utilise pour l'une des cartes:

$(window).load(function(){ 
     //Get cookies when page loaded 
     var useranswers=$.cookie('survery'); 
     useranswers= JSON.parse (useranswers); 

     // do something with previous answers 


     //#shape functions 
     $('#shape area').hover(
      function(e){ 
       $('#'+ this.alt).addClass('hover'); 
      }, 
      function(e){ 
       $('#'+ this.alt).removeClass('hover'); 
      } 
     ).click(
      function(e){ 
       $('img.selected-region').removeClass('selected-region'); 
      }, 
      function(e){ 
       $('#'+ this.alt).addClass('selected-region'); 
      }, 

      function(e){  
       var answer1 = $(this).attr("class"); 
      }); 

    }); 

Je sais que le problème se situe quelque part avec la fonction .click, mais je ne suis pas entièrement sûr de ce que j'ai fait de mal. Toute aide serait grandement appréciée.

Répondre

3

.click() n'accepte pas trois rappels, il n'en accepte qu'un. Si vous avez l'intention de tous les trois à exécuter en séquence sur un clic, essayez de les combiner tous à un seul function(e), comme ceci:

.click(
    function(e){ 
     $('img.selected-region').removeClass('selected-region'); 
     $('#'+ this.alt).addClass('selected-region'); 
     var answer1 = $(this).attr("class"); 
    }); 

Aussi, changer

$(window).load(function(){ 

à

$(document).ready(function(){ 
+0

Merci pour l'aide, bien que toujours ne fonctionne pas - voir ici: http://www.jsfiddle.net/CvZeQ/3/ – Jascination

+1

http://www.jsfiddle.net/9t9AK supprimer votre appel onload ... jsfiddle fait cela pour vous ... Aussi vous voulez utiliser sur DomReady 99% du temps par rapport à onLoad. – prodigitalson

+0

Ahh, je suis un idiot. Merci beaucoup pour votre aide, vraiment l'apprécier mate! Upvotes pour vous. – Jascination

Questions connexes