2013-10-02 85 views
0

我正在更新一个vaadin项目从vaadin 6版本到vaadin 7。它包含一些原生的Javascript方法,这些方法在旧版本中运行良好。然而,其中一些应该被调用时会抛出异常。我对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

@arjacsoh你在页面中包含了'jquery.js'吗? –

+0

@RoryMcCrossan:我如何包含jquery.js? – arjacsoh

回答

0

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

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

+0

这个怎么办?与项目结构有关吗? – arjacsoh