在onclick事件上在javascript函数中传递对象

在onclick事件上在javascript函数中传递对象,javascript,jquery,jsp,jstl,Javascript,Jquery,Jsp,Jstl,我试图将一个对象传递给一个javascript函数,该函数在单击链接时会触发。但不幸的是,我无法让它工作 以下是我的jsp文件中的代码: <script type="text/javascript"> $(document).ready(function() { function tryToDoItTwice(obj) { var check = obj; if(check == null) {

我试图将一个对象传递给一个javascript函数,该函数在单击链接时会触发。但不幸的是,我无法让它工作

以下是我的jsp文件中的代码:

<script type="text/javascript">
    $(document).ready(function() {
        function tryToDoItTwice(obj) {
            var check = obj;
            if(check == null) {
                return true;
            }
            else {
                alert("You're not allowed to do this twice!");
                return false;
            }
        }
    });
</script>

<a href="<c:url value="/somepath" />" onclick="javascript: tryToDoItTwice(${foo});">Try to do it twice</a>

$(文档).ready(函数(){
函数tryToDoItTwice(obj){
var检查=obj;
如果(检查==null){
返回true;
}
否则{
警告(“你不允许这样做两次!”);
返回false;
}
}
});
这里
foo
指的是
foo
类型的对象

有人能帮我理解我做错了什么吗

EDIT
Foo
是一个java对象。而
${foo}
是引用
foo
java对象的引用变量


谢谢。

您的
check
变量是该函数的局部作用域,因此每次调用该函数时都会重新声明该变量(下次单击时不会存储您的值)

您需要扩展变量的范围

 var check = null;
  $(document).ready(function() {
        function tryToDoItTwice(obj) {
            check = obj;
            if(check == null) {
                return true;
            }
            else {
                alert("You're not allowed to do this twice!");
                return false;
            }
        }
});
另外,如果
foo
存在于其他地方,您可能只想这样传入它:


您的
check
变量是该函数的局部作用域,因此每次调用该函数时都会重新声明该变量(下次单击时不会存储您的值)

您需要扩展变量的范围

 var check = null;
  $(document).ready(function() {
        function tryToDoItTwice(obj) {
            check = obj;
            if(check == null) {
                return true;
            }
            else {
                alert("You're not allowed to do this twice!");
                return false;
            }
        }
});
另外,如果
foo
存在于其他地方,您可能只想这样传入它:


您不能将JAVA对象直接传递给javascript。您需要以JSON的形式返回(查找GSON或Jackson以将对象转换为JSON)或将变量(非对象)传递给函数。

您不能将JAVA对象直接传递给javascript。或者您需要以JSON的形式返回(查找GSON或Jackson以将对象转换为JSON)或将变量(而不是对象)传递给函数。

我会说在JQuery之前先学习Javascript。什么是${foo}从未见过这种语法。此外,无需将
javascript
放在onclick属性中。并且,给我们错误消息。我需要澄清..函数从未被正确调用?@Itay:它引用了Foo类型的对象。它在jsp页面上使用的表达式语言。我正在将此对象从控制器传递到此jsp页面
$未定义
在不包含jquery.js时未定义。我想说在jquery之前学习Javascript。什么是${foo}从未见过这种语法。此外,无需将
javascript
放在onclick属性中。并且,给我们错误消息。我需要澄清..函数从未被正确调用?@Itay:它引用了Foo类型的对象。它在jsp页面上使用的表达式语言。我正在将此对象从控制器传递到此jsp页面
$未定义
在不包含jquery.js的情况下未定义。请不要看函数名。我认为他是从服务器端而不是客户端获得单击次数。请不要看函数名。我认为他是从服务器端而不是客户端获得单击次数。哎呀,我想我应该我在问题中明确提到了。谢谢。哦,我想我应该在问题中明确提到。谢谢。