jquery отзывчивый календарь не может установить выбранный день - PullRequest
0 голосов
/ 01 марта 2019

Я использую отзывчивый календарь jquery из http://w3widgets.com/responsive-calendar в моем Web Application.Я использую следующий код для инициализации календаря: // Инициализация отзывчивого календаря

if(jQuery('.responsive-calendar').length)
{
    jQuery('.responsive-calendar').responsiveCalendar({
        format: 'dd/MM/yyyy',
        allRows: false,
        startFromSunday: true,
        onInit: function() {
            if(jQuery("#selectedDay").val().length)
            {
                var currentDate = jQuery("#selectedDay").val();
                var dateSplit = currentDate.split('-');
                //jQuery('.responsive-calendar').responsiveCalendar(dateSplit[2]+"-"+dateSplit[1]);
                jQuery('.responsive-calendar').responsiveCalendar('2014-02');
                jQuery(".responsive-calendar a[data-day=6][data-month=2][data-year=2014]").addClass('selectedDay');
                //jQuery('.responsive-calendar a[data-day=' + dateSplit[0].replace(/^0+/, '') + '][data-month=' + dateSplit[1].replace(/^0+/, '') + '][data-year=' + dateSplit[2] + ']').addClass('selectedDay');
            }
            else
            {
                jQuery('.responsive-calendar .today a').addClass('selectedDay');
            }
        },
        onDayClick: function(events) { 
            jQuery(".alert").hide();
            var thisDayEvent, key;
            var monthNames = new Array("undefined", "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec");
            key = addLeadingZero(jQuery(this).data('year') + '-' + monthNames[jQuery(this).data('month')] + '-' + addLeadingZero(jQuery(this).data('day')));
            var url = jQuery('#cbrainEntityUrl').val();
            var activity = jQuery('#contentType').val();
            url = url + activity + "/" + key
            window.location.href = url;
        }
    });
}

Также следующий скрипт при загрузке страницы:

jQuery(window).bind("load", function() { 
//Set current selected day on initial page load
if(jQuery('#selectedDay').length)
{
    var currentDate = 0;
    if(jQuery("#selectedDay").val().length)
    {
        currentDate = jQuery("#selectedDay").val();
        var dateSplit = currentDate.split('-');
        jQuery('.responsive-calendar').responsiveCalendar('2014-02');
        //jQuery('.responsive-calendar a[data-day=' + dateSplit[0].replace(/^0+/, '') + '][data-month=' + dateSplit[1].replace(/^0+/, '') + '][data-year=' + dateSplit[2] + ']').addClass('selectedDay');
    }
    else
    {
        var nowDate = new Date();
        var curr_day = nowDate.getDate();
        curr_day = ("0" + curr_day).slice(-2);
        var curr_month = nowDate.getMonth() + 1;
        curr_month = ("0" + curr_month).slice(-2);
        var curr_year = nowDate.getFullYear();
        currentDate = curr_day + "-" + curr_month + "-" + curr_year;
        jQuery("#selectedDay").val(currentDate);
        jQuery('.responsive-calendar .today a').addClass('selectedDay');
    }
}

});

После двух строк скриптов при выполнении вКонсоль перейдет к указанному месяцу и установит выбранный день, как выделено, добавив класс:

jQuery('.responsive-calendar').responsiveCalendar('2014-02');
jQuery(".responsive-calendar a[data-day=6][data-month=2][data-year=2014]").addClass('selectedDay');

Но сценарии при загрузке не переходят к указанной дате.Все, что я пытаюсь сделать, это установить календарь на указанную дату и добавить туда класс, чтобы он оставался выбранным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...