简单的jQuery语法帮助,不知道我哪里出错了

时间:2011-01-10 06:39:46

标签: 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函数的某个地方,但我不完全确定我做错了什么。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分: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(){