jQuery datepicker 插件在 Chrome 和 Safari 中不起作用

标签 jquery google-chrome safari datepicker

我正在使用特定的 jquery datepicker vidget ( http://keith-wood.name/datepick.html )。对特定日历(泰语)的支持就是原因。将新的日期选择器应用于现有逻辑我遇到了问题。选择器在 Chrome 和 Safari 浏览器中无法打开(不会出现弹出窗口),但在 IE8 和 Firefox 中工作正常。 经过一番调查后,我想到附件主题 html 标签就是原因。它写在插件的引用中,应该附加到 , 和 标签。我将它附加到标签上。 代码如下:

<script type="text/javascript" src="../jquery.calendars.js?v=$version"></script>
<script type="text/javascript" src="../jquery.calendars.plus.js?v=$version"></script>
<script type="text/javascript" src="../jquery.calendars.picker.js?v=$version"></script>
<script type="text/javascript" src="../jquery.calendars.thai.js?v=$version"></script>

jQuery(function() {
            jQuery('#deactivation_date').calendarsPicker({
                changeMonth: false, 
                showOtherMonths: true, 
                selectOtherMonths: true,
                showAnim: '',
                dateFormat: _dateFormat,
                calendar: jQuery.calendars.instance(_userLanguageCode == 'th' ? 'thai' : '', 'en'),
                alignment: 'bottom',
                renderer: jQuery.extend({}, jQuery.calendars.picker.defaultRenderer,
                    {
                        picker: jQuery.calendars.picker.defaultRenderer.picker.
                        replace(/\{link:prev\}/, '{link:prevJump}{link:prev}').
                        replace(/\{link:next\}/, '{link:nextJump}{link:next}').
                        replace(/\{link:clear\}/, '').
                        replace(/\{link:close\}/, '')
                    }),
                onSelect: function(dates){

                        }
                    }
            });
        });

...

<a href="javascript:void(0)" class="date-pick no-left-padding" id = "deactivation_date">
   "DateText" </a>

进一步的调查让我认为在 Chrome 中,适当的事件处理程序没有正确附加,因为调试器甚至没有进入“show”函数。这是小部件在 Chrome 和 Safari 中可能失败的部分:

var trigger = inst.get('showTrigger');
inst.trigger = (!trigger ? $([]) :
        $(trigger).clone().addClass(this._triggerClass)
        [inst.get('isRTL') ? 'insertBefore' : 'insertAfter'](target).
            click(function() {
            if (!$.calendars.picker.isDisabled(target[0])) {
                $.calendars.picker[$.calendars.picker.curInst == inst ?
                    'hide' : 'show'](target[0]);
            }
        }));

有一个变体可以将所有日期选择器重新附加到不同的标签,但对于 div/span ,将执行内联渲染,并且输入看起来根本不像文本。

请分享您的想法(如果有的话)...

提前致谢

jQuery datepicker 目前似乎不支持非公历: http://bugs.jqueryui.com/ticket/5789 不是吗?

最佳答案

可能不完全是您问题的答案,而是解决您问题的提示。

为什么不使用带有全局化文件的标准 JQuery UI 日历 here

关于jQuery datepicker 插件在 Chrome 和 Safari 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14975812/

相关文章:

html - Div 在 IE8 中不对齐

javascript - 如何修复 webkit-fake-url 的意思?

javascript - 在 $.each 中 append 问题

jquery - 为什么 $(elem).data() 有效但 jQuery.data() 不起作用?

javascript - 无法弄清楚 jQuery 延迟完成

Safari 浏览器 z-index 或变换 CSS 属性问题 - 元素不可见/背景

tomcat - Safari 无法打开 Tomcat localhost

jquery - JQGrid 中的日期字段具有自定义格式化程序

linux - 在 AwesomeWM 的 Chrome 窗口之间移动撕下标签

javascript - 无法从 Chrome 控制台执行 Javascript