Javascript本机方法意外抛出异常

时间:2013-10-02 07:39:23

标签: java javascript jquery exception vaadin

我正在将vaadin项目从vaadin 6版本更新为vaadin 7。它包含一些在旧版本中运行良好的原生Javascript方法。但是有些人在应该调用时会抛出异常。我对Javascript编程不够熟悉,因此我无法确定错误的来源。特别是该方法是:

 protected static native void addSthToImg()
    /*-{
        $wnd.$(document).ready(function() {
            var = $wnd.$;
            var('.settingswrapper > img').addClass("imgStartup");
            if (var('.settingswrapper > img').hasClass("imgStartup")) {
                console.log("imgStartup exist");
                var('.settingswrapper > img')
      .animate(null, 300, function() {
                    var('.settingswrapper > img').removeClass("imgStartup");
                    var('.settingswrapper > img').addClass("imagePopIn");

                });
            }
        });
    }-*/;

在Chrome中的控制台上,我看到错误堆栈跟踪:

Caused by: com.google.gwt.core.client.JavaScriptException: (TypeError) : Object [object global] has no method '$'

可能导致错误的原因是什么?为什么它在旧版本中有效?是否缺少jar /库?

1 个答案:

答案 0 :(得分:0)

似乎jQuery别名$未在全局范围内定义(由$wnd表示)。你确定你的页面包含jQuery吗?

您的HTML源代码中应该包含<script src="/js/jquery.js" type="text/javascript"></script>(但指向项目中jquery.js的实际位置)。我不知道Vaadin是否自动管理JavaScript库,因为我不熟悉该框架。