【问题标题】:Jquery mobile datepicker localization bugJquery 移动日期选择器本地化错误
【发布时间】:2015-05-21 14:15:37
【问题描述】:

有一个与 jquery ui datepicker 插件相关的错误。本地化文件在文档准备就绪时初始化:

jQuery(function($) {
$.datepicker.regional['tr'] = {
    closeText: 'kapat',
    prevText: '<geri',
    nextText: 'ileri&#x3e',
    currentText: 'bugün',
    monthNames: ['OCAK', 'ŞUBAT', 'MART', 'NİSAN', 'MAYIS', 'HAZİRAN', 'TEMMUZ', 'AĞUSTOS', 'EYLÜL', 'EKİM', 'KASIM', 'ARALIK'],
    monthNamesShort: ['OCA', 'ŞUB', 'MAR', 'NİS', 'MAY', 'HAZ', 'TEM', 'AĞU', 'EYL', 'EKİ', 'KAS', 'ARA'],
    dayNames: ['PAZAR', 'PAZARTESİ', 'SALI', 'ÇARŞAMBA', 'PERŞEMBE', 'CUMA', 'CUMARTESİ'],
    dayNamesShort: ['PZ', 'PT', 'SA', 'ÇA', 'PE', 'CU', 'CT'],
    dayNamesMin: ['PZ', 'PT', 'SA', 'ÇA', 'PE', 'CU', 'CT'],
    weekHeader: 'HF',
    dateFormat: 'dd MM yy',
    firstDay: 1,
    isRTL: false,
    showMonthAfterYear: false,
    yearSuffix: ''
};
$.datepicker.setDefaults($.datepicker.regional['tr']);

});

但是,在使用 jQuery mobile 时,我的 datepicker 代码在 pageshow 事件中被调用,并且 pageshow 在文档准备好之前被调用,所以 $.datepicker.regional 数组在这个阶段是空的。 有什么解决办法吗?

【问题讨论】:

    标签: javascript jquery jquery-ui jquery-mobile datepicker


    【解决方案1】:

    作为一种解决方案,文档就绪代码应替换为就绪事件和页面显示事件:

    $(document).one('ready pageshow', function() {
        $.datepicker.regional['tr'] = {
            closeText: 'kapat',
            prevText: '<geri',
            nextText: 'ileri&#x3e',
            currentText: 'bugün',
            monthNames: ['OCAK', 'ŞUBAT', 'MART', 'NİSAN', 'MAYIS', 'HAZİRAN', 'TEMMUZ', 'AĞUSTOS', 'EYLÜL', 'EKİM', 'KASIM', 'ARALIK'],
            monthNamesShort: ['OCA', 'ŞUB', 'MAR', 'NİS', 'MAY', 'HAZ', 'TEM', 'AĞU', 'EYL', 'EKİ', 'KAS', 'ARA'],
            dayNames: ['PAZAR', 'PAZARTESİ', 'SALI', 'ÇARŞAMBA', 'PERŞEMBE', 'CUMA', 'CUMARTESİ'],
            dayNamesShort: ['PZ', 'PT', 'SA', 'ÇA', 'PE', 'CU', 'CT'],
            dayNamesMin: ['PZ', 'PT', 'SA', 'ÇA', 'PE', 'CU', 'CT'],
            weekHeader: 'HF',
            dateFormat: 'dd MM yy',
            firstDay: 1,
            isRTL: false,
            showMonthAfterYear: false,
            yearSuffix: ''
        };
        $.datepicker.setDefaults($.datepicker.regional['tr']);
    });
    

    请注意,对于性能问题,应使用 $(document).one 而不是 on。 虽然jquery is not officially supporting jqueryui datepicker plugin是手机使用,但应该很多人都在用,这个案子很有可能会遇到。所以,他们应该更好地更新本地化文件...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多