2011-01-10 3 views
0

У меня возникают проблемы с кодом jQuery на данный момент, я знаю, где проблема, но я не знаю, в чем проблема. Наверное, очень простой, но я новичок в этом.Простая синтаксическая помощь jQuery, не знаю, где я ошибся

Вы можете увидеть (не) работает скрипку здесь: http://www.jsfiddle.net/CvZeQ/

В основном я хочу, чтобы установить различные функции .click на основе независимо выбран (У меня есть 5 графических карт, каждый с разным #mapname, и хотите каждый из которых относится к другой переменной (answer1, answer2, answer3 ...), чтобы сохранить выбранный «ответ» для каждой карты.)

Вот код, который я использую для одной из карт:

$(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"); 
      }); 

    }); 

Я знаю, что проблема лежит где-то с .click, но я не совсем уверен, что я сделал неправильно. Любая помощь будет принята с благодарностью.

ответ

3

.click() не принимает три обратных вызова, он принимает только один. Если вы собираетесь за все три, чтобы выполнить в последовательности по щелчку, попробуйте объединить их всех к одному function(e), например, так:

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

Кроме того, изменение

$(window).load(function(){ 

к

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

Спасибо за помощь, хотя все еще не работает - см. здесь: http://www.jsfiddle.net/CvZeQ/3/ – Jascination

+1

http://www.jsfiddle.net/9t9AK удалите свой вызов onload ... jsfiddle делает это за вас ... Также вы хотите использовать DomReady 99% времени, в отличие от onLoad. – prodigitalson

+0

Ах, я идиот. Большое спасибо за вашу помощь, очень цените это! Упреки для вас. – Jascination

Смежные вопросы