$。移动是不确定的(工作灯+ jQuery Mobile的)($.mobile is undefin

2019-09-03 12:50发布

我主要的html:

<!DOCTYPE html>     
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" />
    <title>Home</title>
    <link rel="stylesheet" href="js/jquery.mobile-1.2.0/jquery.mobile-1.2.0.css" type="text/css" media="screen" title="no title" charset="utf-8" />
    <link rel="stylesheet" href="css/Home.css" type="text/css" media="screen" title="no title" charset="utf-8" />
    <link rel="stylesheet" href="css/theme-addon.css" type="text/css" media="screen" title="no title" charset="utf-8" />

    <script src="js/jquery-1.7.2.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="js/jquery.mobile-1.2.0/jquery.mobile-1.2.0.min.js" type="text/javascript" charset="utf-8"></script>
</head>
<body id="content" style="display: none">

    <div data-role="page" id="homePage">
        <div data-role="header"><div class="ui-title">Home</div></div>
        <div data-role="content" style="text-align: center">
            <a data-role="button" id="login" class="fullWidth">Login</a>
        </div>
    </div>

    <script src="js/initOptions.js"></script>
    <script src="js/Home.js" type="text/javascript" charset="utf-8"></script>
    <script src="js/messages.js"></script>

</body>

然后在Home.js:

// Worklight comes with the jQuery framework bundled inside. If you do not want to use it, please comment out the line below.
window.$ = window.jQuery = WLJQ;

function wlCommonInit(){
    // Common initialization code goes here
}

$("#homePage").live('pagecreate', function(event,ui) {
    $('#login').click(function(){
        $.mobile.changePage($('#nextPage.html'));
    });
});

当我登录按钮点击,它给错误$.mobile is undefined在这条线:

$.mobile.changePage($('#nextPage.html'));

是否有任何人可以深入了解什么是错我的代码? 我相信我做正确的事? 此外,我使用5.0.2.407开发者版的工作灯的版本。

Answer 1:

最后,我解决了这个问题的:

<script src="js/jquery-1.9.1.min.js" type="text/javascript" charset="utf-8"></script>
<script>
    var jq = jQuery.noConflict();
</script>
<script src="js/jquery.mobile-1.3.1/jquery.mobile-1.3.1.min.js" type="text/javascript" charset="utf-8"></script>

后来在JS:

jq.mobile.changePage("the.html");

代替

$.mobile.changePage("the.html");


Answer 2:

工作灯已经使用jQuery捆绑在一起,所以像你一样在HTML的底部,你不应该添加它第二次。 此外,你不应该在底部放置也无妨,而在HEAD - 删除了这一行。

此外,移动参考将jQuery移动到头部的为好。

使用工作灯5.0.6.1(最新版本,你似乎不使用)和jQuery Mobile的1.3.1,我创建了一个新的项目和应用程序,并修改了HTML如下:

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <title>testapp</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
    <link rel="shortcut icon" href="images/favicon.png">
    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
    <link rel="stylesheet" href="css/testapp.css">
    <script src="jqueryMobile/jquery.mobile-1.3.1.min.css"></script>
    <script src="jqueryMobile/jquery.mobile-1.3.1.min.js"></script>
    <script>window.$ = window.jQuery = WLJQ;</script>
</head>
<body id="content" style="display: none;">
    <div data-role="page">
    testapp

    </div>
    <script src="js/initOptions.js"></script>
    <script src="js/testapp.js"></script>
    <script src="js/messages.js"></script>
</body>
</html>
  1. 我把缩小的.css和.js文件的文件夹中,并引用他们的HEAD元素中。
  2. 我在body元素中添加。
  3. 所有构建和部署
  4. 通过工作灯控制台预览

作品......我建议你开始小象上面(包括使用工作灯和jQuery Mobile的最新版本),并以此为基础(工作)的基础)。

你可以从Eclipse市场最新版本的工作灯的(在Eclipse中,看一下帮助菜单>>市场)。



文章来源: $.mobile is undefined (Worklight + jQuery Mobile)