JQuery函数返回undefined但是警告显示正确的值

时间:2013-06-27 10:26:58

标签: javascript jquery

我有一个html页面,我有UL和LI标签来创建菜单。 UL标签的类别为 category_menu ,LI的ID分别为id 1,2,3。当有人点击这个LI时,我想将那个LI id作为请求参数发送给Spring控制器。警报框显示正确的值,但我没有在浏览器控制台上获得正确的值。它的给予

../category.jsp?category=undefined

我是JQuery和JavaScript的新手所以任何人都可以告诉我为什么该函数返回undefined尽管警报显示正确的值。

var payload = {
        "url" : "templates/category.jsp",
        "callback" : this.onLoadComplete,
        "data" : {
            'category' : function(){
                $('.category_menu li').click(function(){
                            alert(this.id);
                            return this.id;
                        });
            }
        },
        "context" : this
    };
};

2 个答案:

答案 0 :(得分:1)

您的代码中的问题是,对于类别参数的数据,您正在定义一个函数,除了在.category_menu li的点击函数上注册事件外,该函数本身什么都不做。

快速修复可以遵循:

var globalvar = '';
$('.category_menu li').click(function(){
   globalvar = this.id;
});

var payload = {
    "url" : "templates/category.jsp",
    "callback" : this.onLoadComplete,
    "data" : {
        'category' : globalvar
    },
    "context" : this
 };
};

我没有运行上面的代码,但我相信它会让你知道你在做什么错误并且可以解决你的问题。

由于

答案 1 :(得分:1)

试试这个:

var payload = {
    "url" : "templates/category.jsp",
    "callback" : this.onLoadComplete,
    "data" : {
        'category' : ""
    },
    "context" : this
};


$('.category_menu li').click(function(){
   payload.data.category=this.id;
});

发送此请求即可。