jQuery Mobile 日期选择器版本问题

Posted

技术标签:

【中文标题】jQuery Mobile 日期选择器版本问题【英文标题】:jQuery Mobile datepicker versions issues 【发布时间】:2013-04-09 05:31:23 【问题描述】:

我在使用 jquery mobile (datepicker) 的 datepicker 时遇到了一些问题

当我使用 jQuery 1.5 版本和 jQuery mobile 1.0a4.1 时,日期选择器按预期显示。代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />

    <link href="~/Content/jquery.ui.datepicker.mobile.css" rel="stylesheet" />
    <link rel="stylesheet"  href="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.css" />
    <script src="http://code.jquery.com/jquery-1.5.min.js"></script>
    <script>
        //reset type=date inputs to text
        $(document).bind("mobileinit", function () 
            $.mobile.page.prototype.options.degradeInputs.date = true;
        );
    </script>
    <script src="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script>
    <script src="~/Scripts/jquery.ui.datepicker.js"></script>
    <script src="~/Scripts/jquery.ui.datepicker.mobile.js"></script>

</head>
<body>

    @RenderBody()
    <div data-role="page">

        <div data-role="content">
            <p>Hello world</p>
            <form action="#" method="get">
                    <div data-role="fieldcontain">
                        <label for="date">Date Input:</label>
                        <input type="date" name="date" id="date" value="" />
                    </div>
                </form>
</div>
</body>

但是当我使用 jQuery 1.9.1 和 jQuery mobile 1.3.1 时,它会产生以下错误:

TypeError: Object [object Object] has no method 'live' [http://localhost:62799/Scripts/jquery.ui.datepicker.mobile.js:50]

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />

    <link href="~/Content/jquery.ui.datepicker.mobile.css" rel="stylesheet" />
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script>
        //reset type=date inputs to text
        $(document).bind("mobileinit", function () 
            $.mobile.page.prototype.options.degradeInputs.date = true;
        );
    </script>
    <script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
    <script src="~/Scripts/jquery.ui.datepicker.js"></script>
    <script src="~/Scripts/jquery.ui.datepicker.mobile.js"></script>

</head>
<body>

    @RenderBody()
    <div data-role="page">
        <div data-role="content">
            <p>Hello world</p>
            <form action="#" method="get">
                    <div data-role="fieldcontain">
                        <label for="date">Date Input:</label>
                        <input type="date" name="date" id="date" value="" />
                    </div>
                </form>
</div>
</body>

有一些解决方法吗?

【问题讨论】:

【参考方案1】:

基本上你可能使用的是旧版本的datepicker

您的版本仍然使用函数 live 进行事件绑定。在 jQuery 1.9+ 版本中不推荐使用相同的功能。

您有 2 个解决方案:

    使用较新版本的datepicker 或者使用 jQuery 版本 1.8.3,因为它仍然具有 live 功能,并且 jQuery Mobile 可以很好地使用它。

【讨论】:

但是这个日期选择器可以在手机上使用吗?这不仅适用于“桌面”吗?我想使用最新版本的 API... 我告诉过你有 2 个解决方案,选择一个。 @Gajotres 你不能更清楚地回答 amp 问题吗?这对这里的所有其他用户都有好处。 似乎不清楚(至少对我而言)refereneced jQuery UI Datepicker 是否可以在 jQuery Mobile 上下文中使用。当您回答“有 2 个解决方案,选择一个”时,这并没有帮助我理解这一点。谢谢【参考方案2】:

您使用的日期选择器是实验性的,从未纳入主版本

http://jquerymobile.com/demos/1.0a4.1/experiments/ui-datepicker/

DateBox 是另一种可供选择的移动设备

http://dev.jtsage.com/jQM-DateBox2/

【讨论】:

以上是关于jQuery Mobile 日期选择器版本问题的主要内容,如果未能解决你的问题,请参考以下文章

JQuery Mobile 日期选择器未在 Chrome 中显示日期

jquery mobile中的日期选择器在第二页中添加时重复

用于Web的响应式jQuery日期时间选择器插件&;可移动的

Mobiscroll datepicker 被 jQuery Mobile 模态隐藏

Rails 日期/时间选择器(希望是 jquery)[关闭]

jQuery cxCalendar 日期选择器