Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.10.2012, 09:44
Аватар для Sveta
Профессор
Отправить личное сообщение для Sveta Посмотреть профиль Найти все сообщения от Sveta
 
Регистрация: 10.10.2012
Сообщений: 153

параметры только для одного из двух плагинов
Доброе утро!
Уменя два ui.DateTimePicker, мне нужно чтобы у одного время по умолчанию было 00:00 а у другого 23:59, а остальные параметры были одинаковыми.
Казалось бы ничего сложного, но
$(function() {
$( "#to" ).datetimepicker({
hour: 23,
minute: 59
});
var dates = $( "#from, #to" ).datetimepicker({
changeYear: false,
dateFormat: "mm-dd",
onSelect: function( selectedDate )
{var option = this.id == "from" ? "minDate" : "maxDate",
instance = $( this ).data( "datepicker" ),
date = $.datepicker.parseDate(
instance.settings.dateFormat ||
$.datepicker._defaults.dateFormat,
selectedDate, instance.settings );
dates.not( this ).datepicker( "option", option, date );
}
});
});
В случае такого кода, со временем проблем не возникает..но остальные настройки не работают..я сама чувствую что код не правильный, если я правильно поняла, то первая функция выводит время еще до того как начинает выполняться другая...надо как-то по-другому..просто setDefaults установит настройки для обоих timepicker ..что же делать?

Последний раз редактировалось Sveta, 16.10.2012 в 08:21.
Ответить с цитированием
  #2 (permalink)  
Старый 15.10.2012, 00:50
Профессор
Отправить личное сообщение для Hoshinokoe Посмотреть профиль Найти все сообщения от Hoshinokoe
 
Регистрация: 08.01.2012
Сообщений: 253

Sveta,

для начала научиться пользоваться тегами для подсветки кода

А так этот код должен вам помочь:
$(function ()
{
    var default_options = {
        changeYear: false,
        dateFormat: "mm-dd",
        onSelect: function (selectedDate)
        {
            var option = this.id == "from" ? "minDate" : "maxDate",
            instance = $(this).data("datepicker"),
            date = $.datepicker.parseDate(
            instance.settings.dateFormat ||
            $.datepicker._defaults.dateFormat,
            selectedDate, instance.settings);
            dates.not(this).datepicker("option", option, date);
        }
    };

    var extended_options = $.extend({
        hour: 23,
        minute: 59
    }, default_options);

    $("#from").datetimepicker(default_options);
    $("#to").datetimepicker(extended_options);
});

Сначала определяем общие опции, затем делаем расширенные от них. Потом передаем их при инициализации плагина (каждому свои).
Ответить с цитированием
  #3 (permalink)  
Старый 15.10.2012, 09:39
Аватар для Sveta
Профессор
Отправить личное сообщение для Sveta Посмотреть профиль Найти все сообщения от Sveta
 
Регистрация: 10.10.2012
Сообщений: 153

Hoshinokoe,
Спасибо что пришли на выручку !) Время работает как надо) только 1.)перестало работать вот это:
onSelect: function (selectedDate)
{
var option = this.id == "from" ? "minDate" : "maxDate",
instance = $(this).data("datepicker"),
date = $.datepicker.parseDate(
instance.settings.dateFormat ||
$.datepicker._defaults.dateFormat,
selectedDate, instance.settings);
dates.not(this).datepicker("option", option, date);
}
И 2).даты на календарях выбираются один раз, и если я передумаю и захочу поменять выбранную дату - придется обновлять страничку..
Но я нашла одно решение чтобы все работало ))) Правда в моем решение кое-какой код пришлось дублировать
В общем вот:
$(function() {
$( "#from" ).datetimepicker({
changeYear: false,
changeMonth: true,
numberOfMonths: 1,
firstDay: 1,
showButtonPanel: true,
dateFormat: "mm-dd",
onSelect: function( selectedDate ) {
instance = $( this ).data( "datepicker" ),
date = $.datepicker.parseDate(
instance.settings.dateFormat ||
$.datepicker._defaults.dateFormat,
selectedDate, instance.settings );
$('#to').datepicker( "option", "minDate", date );
}
});

$( "#to" ).datetimepicker({
hour: 23,
minute: 59,
changeYear: false,
changeMonth: true,
numberOfMonths: 1,
firstDay: 1,
showButtonPanel: true,
dateFormat: "mm-dd",
onSelect: function( selectedDate ) {
instance = $( this ).data( "datepicker" ),
date = $.datepicker.parseDate(
instance.settings.dateFormat ||
$.datepicker._defaults.dateFormat,
selectedDate, instance.settings );
$('#from').datepicker( "option", "maxDate", date );
});
});
хотя ваш вариант мне больше нравится..не люблю когда код повторяется,как у меня..попробую доработать ваш
Ответить с цитированием
  #4 (permalink)  
Старый 15.10.2012, 09:40
Аватар для Sveta
Профессор
Отправить личное сообщение для Sveta Посмотреть профиль Найти все сообщения от Sveta
 
Регистрация: 10.10.2012
Сообщений: 153

Hoshinokoe,
оу!!! теги для подсветки кода!! Спасибо за замечание!! я и не сразу поняла..только сейчас заметила) сейчас посмотрю как это делается)))
Ответить с цитированием
  #5 (permalink)  
Старый 15.10.2012, 14:52
Профессор
Отправить личное сообщение для Hoshinokoe Посмотреть профиль Найти все сообщения от Hoshinokoe
 
Регистрация: 08.01.2012
Сообщений: 253

Sveta,

На форуме ещё можно редактировать свои сообщения (это я к подсветке кода).

Невнимательно посмотрел на onSelect метод, внес исправления:
$(function () {
    var default_options = {
        changeYear: false,
        dateFormat: "mm-dd",
        onSelect: function (selectedDate) {
            var option = this.id == "from" ? "minDate" : "maxDate",
                selector = this.id == "from" ? "#to" : "#from",
            instance = $(this).data("datepicker"),
            date = $.datepicker.parseDate(
            instance.settings.dateFormat ||
            $.datepicker._defaults.dateFormat,
            selectedDate, instance.settings);
            $(selector).datepicker("option", option, date);
        }
    };

    var extended_options = $.extend({
        hour: 23,
        minute: 59
    }, default_options);

    $("#from").datetimepicker(default_options);
    $("#to").datetimepicker(extended_options);
});

Последний раз редактировалось Hoshinokoe, 15.10.2012 в 15:04.
Ответить с цитированием
  #6 (permalink)  
Старый 15.10.2012, 21:19
Аватар для Sveta
Профессор
Отправить личное сообщение для Sveta Посмотреть профиль Найти все сообщения от Sveta
 
Регистрация: 10.10.2012
Сообщений: 153

Hoshinokoe,
Да!! Теперь все действительно работает!! Спасибо большое! А то я с этим календарем всю прошлую неделю возилась - то таймпикер навесить, то сделать выбор года - слайдером в шапке (так и не сделала кстати, даже тему здесь же создавала, но, к счастью такая необходимость отпала и слайдер разрешили разместить не в шапке а просто рядом=)), в общем то одно то другое))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31
Это только для профи(всплывающее сообщение) Derack Элементы интерфейса 6 23.07.2009 14:22
Не работает AppendChild для div, причём только в IE _Kpot_ Internet Explorer 5 12.02.2009 10:55
JS'ом поменять textDecoration только для случаев link и visited lancer Элементы интерфейса 3 05.04.2008 20:51