4

我正在尝试使用 jQuery Mobile 1.3.2 实现面板功能。这是我的代码:

    <div data-role="page" id="homePage">
    <section data-role="panel" class="row">
        PANEL HERE..
    </section>

    <section data-role="header" class="row">
        <div class="large-12 columns">
            <h3>
                Header..
            </h3>               
        </div>          
    </section>

    <section data-role="content" class="row">
        <div class="large-12 columns">
            CONTENT..               
        </div>          
    </section>

    <section data-role="footer" class="row">
        <div class="large-12 columns">
            FOOTER..                
        </div>          
    </section>

    <script type="text/javascript">
        $(function ()
        {

        }());
    </script>
</div>

当我运行这是一个浏览器时,我收到一个错误:

$.data(...) 未定义

我将其追溯到 jquery.mobile-1.3.2.js 的第 10330 行:

var $theme = $.data( page[0], "mobilePage" ).options.theme,

我错过了什么?

4

3 回答 3

5

我看到 jQuery mobilepanel与 jQuery 2.0 不兼容。

你得到了错误:

TypeError: 'undefined' 不是一个对象(评估'a.data(d[0],"mobilePage").options')

尝试降级到 jQuery 1.9 它可以使用它。

演示:http: //jsfiddle.net/IrvinDominin/3wUts/

于 2013-09-14T18:21:47.350 回答
3

如果您在 jquery mobile javascript 文件(无论是否缩小)中快速搜索“mobilePage”一词并将其更改为“mobile-page”,它将起作用。应该只有一场比赛。我遇到了这个并让它像这样工作。

修复的来源是:https ://github.com/jquery/jquery-mobile/issues/6200

于 2013-11-26T18:24:19.383 回答
1

我在脚本包含标题中的行之后立即添加了此代码:

<script type="text/javascript" src="//code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>

<script type="text/javascript">
  var jqDataOrg = $.data;
  $.data = function (a, b, c) { return jqDataOrg(a, b === "mobilePage" ? "mobile-page" : b, c); };
</script>

它允许我继续使用jQuery 2CDN进行分发。可能有一些我不知道的副作用,所以要小心。

于 2014-02-01T16:23:57.193 回答