2013-10-02 27 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