0

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

../category.jsp?category=undefined

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

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
    };
};
4

2 回答 2

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
 };
};

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

谢谢

于 2013-06-27T10:37:29.297 回答
1

尝试这个:

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


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

并发送此请求就可以了。

于 2013-06-27T10:38:45.217 回答