【问题标题】:jquery datepicker in jquery-mobile popup, first touch is triggering select options to display in iOSjquery-mobile 弹出窗口中的 jquery datepicker,第一次触摸触发选择选项以在 iOS 中显示
【发布时间】:2015-07-12 23:52:41
【问题描述】:

我有一个适用于 iOS 的 PhoneGap(v.4.2.0-0.25.0)/jQuery-Mobile(v1.4.5) 应用程序。我在 jQuery-Mobile 弹出窗口中使用 jquery datepicker 小部件 (jquery-ui-1.11.3)。我遇到的问题是,当我触摸日历上的任何位置时,它会显示月份选择选项。我启用了“changeMonth”和“changeYear”选项。我相信这在某种程度上与 jQueryMobile 弹出窗口有关,因为当我在弹出窗口之外的页面上简单地显示日期选择器时,不会发生此问题。

以下是我的弹窗sn-p:

<div data-role="popup" id="sblCalendarPopup" data-history="false">
    <div id="sblCalendar"></div>
</div>

当我禁用“changeMonth”和“changeYear”选项时,没有选择选项可显示。如果您能深入了解为什么会发生这种情况,我将不胜感激。

【问题讨论】:

  • 经过更多挖掘,我意识到选择菜单在点击弹出窗口的任何位置时都会获得焦点。然后我搜索了更多内容并找到了这篇文章:stackoverflow.com/questions/27794742/… ...我通过触发“今天”按钮上的 click() 找到了针对我的特定情况的解决方法。但是,这会强制日历始终显示当前月/年,而不是先前选择的月/年。我仍然希望找到一个修复程序,或者如果这是一个错误,jQuery-mobile 会修复它。

标签: jquery ios cordova jquery-mobile datepicker


【解决方案1】:

由于我不希望我的任何 jQuery Mobile 弹出窗口发生这种奇怪的行为,我从帖子中找到了一个可行的解决方案:jQuery Mobile Select Menu open on tap anywhere in Popup ... 在 jquery.mobile-1.4.5.js 我只是注释掉了_openPrerequisitesComplete() 中的以下行:

if ( firstFocus.length > 0 ) { this._ui.focusElement = firstFocus; }

或者在 jquery.mobile-1.4.5.min.js 中,注释掉:

c.length>0&&(this._ui.focusElement=c),

到目前为止,这似乎对我有用。我现在可以使用功能齐全的 jQuery UI 日期选择器小部件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 2022-10-01
    • 1970-01-01
    • 2023-03-10
    • 2018-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多