TypeError'undefined'不是对象(评估$ event)

时间:2012-09-03 14:15:38

标签: android jquery jquery-mobile

我正在尝试在Android应用程序的webview中加载本地HTML文件。 HTML文件引用jquerymobile.js的本地副本。我的问题 是在启动应用程序时,抛出以下错误:

TypeError 'undefined' is not an object (evaluating $ event)

即使没有使用jquery lib编写任何代码,也会发生这种情况。当我从CDN加载jquery库时,不会发生此错误。

关于我做错了什么的任何想法? 谢谢你的时间。

添加了更清晰的代码:

这是WebView加载url

的地方
try {
        //this reads the jquerymobile as a string
        jmobile = readFileAsString();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
  wview1.setWebChromeClient(new WebChromeClient() {
        @Override
        public boolean onJsAlert(WebView view, String url, String message,           JsResult result) {
                    //Required functionality here
                    return super.onJsAlert(view, url, message, result);
           }   
  });
 wview1.setWebViewClient(new WebViewClient() {
        @Override
       public void onPageFinished(WebView view, String url) {
            super.onPageFinished(wview1, url);
              wview1.loadUrl("javascript:"+jmobile);
            // do your stuff here
        }
    });
    wview1.loadUrl("file:///android_asset/html/index.html");        

以下作品

<!DOCTYPE html> 
<html> 
    <head> 
<title>My Page</title> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.css" />
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.js"></script>

但如果我将脚本src更改为jquery.mobile-1.1.1.min.js的本地副本,则会出现类型错误

2 个答案:

答案 0 :(得分:2)

引用本地文件时,请按以下顺序放置这些引用:

  1. 移动CSS
  2. jQuery core的JS
  3. jQuery mobile的JS。
  4. 希望它有所帮助。

答案 1 :(得分:0)

我理解您的问题如下: 你有一个本地的HTML文件和JS文件。现在你需要加载HTML和JS.But失败。

您能告诉我如何加载HTML文件并将jquerymobile.js注入其中。

我通常这样做:

WebView.setWebViewClient(new myWebViewClient ());

clsss myWebViewClient extend WebViewClient{
     @Override
     OnPageFinished(View view, String Url){
          view.loadUrl("javascript:"+String in jquerymobile.js);
     }
}

WebView.loadUrl("test.html");

这对你有帮助吗?