получение datepicker UI jQuery всегда открыться в определенном направлении?

Я был вынужден изучить Vim для своего первого задания программирования, когда мне было 16 лет (босс не позволит нам использовать что-либо еще), но я не сделал реальных успехов, пока я не читал Книга Vim Steve Oualline - это настоятельно рекомендовано как начальная точка, если Вы хотите стать серьезными с энергией.

Vim на самом деле занимает больше времени ведущему устройству, чем делают некоторые языки программирования (функции тот комплекс). Попытка 'освоить' Vim путем печати шпаргалок была бы похожа на попытку ведущему устройству Haskell путем чтения нескольких сообщений в блоге. Будьте готовы инвестировать некоторое серьезное время, и Вы будете хорошо вознаграждены.

15
задан Robert Harvey 13 November 2013 в 18:25
поделиться

4 ответа

Вы можете изменить строки:

offset.left -= (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ? Math.abs(offset.left + dpWidth - viewWidth) : 0;
offset.top -= (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ? Math.abs(offset.top + dpHeight + inputHeight*2 - viewHeight) : 0;

... читать:

offset.left = $(inst.input).position().left + dpWidth;
offset.top = $(inst.input).position().top - dpHeight;

Однако это теряет гибкость. Если ваш ввод окажется в верхней части страницы, у вас возникнет проблема, противоположная предыдущей.

6
ответ дан 1 December 2019 в 01:05
поделиться

Проблема заключается в том, что элемент в позиции: фиксированное отображение верхней позиции 0 пикселей (проверьте с помощью: alert $ ('# datepicker2'). Position ()).

Решение:

$('#datepicker').datepicker( {beforeShow: function(input) {
    var x = 100; //add offset
    var y = 20; 
    field = $(input);
    left = field.position().left + x;
    bottom = y;
    setTimeout(function(){
        $('#ui-datepicker-div').css({'top':'', 'bottom':bottom + 'px', 'left': left + 'px'});      
    },1);                    
}}

Проверить HTML :

<form style="position:fixed; bottom:0; width:100%" name="form1" method="post" action="">
  <label>
    <input style="left:300px; position:absolute; bottom:0" type="text" name="textfield" id="datepicker">
  </label>
</form>
10
ответ дан 1 December 2019 в 01:05
поделиться

Из документации похоже, что вы могли бы использовать метод диалога плагина datepicker для достижения желаемого результата. Однако использование этого, скорее всего, означает, что вам придется реализовать часть клея, который в противном случае вы бы получили из коробки с помощью datepicker, например обработчик обратного вызова для извлечения даты и т. Д.

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

0
ответ дан 1 December 2019 в 01:05
поделиться

The only way to be certain (for the jQueryUI version of datepicker) is to disable the functionality of the datepicker that tries to render inside the viewport. Here's a way to do it without modifying the source code files:

$.extend(window.DP_jQuery.datepicker,{_checkOffset:function(inst,offset,isFixed){return offset}});

on later versions of JQuery UI try:

$.extend($.datepicker,{_checkOffset:function(inst,offset,isFixed){return offset}});

That just nukes the _checkOffset function inside datepicker that makes it squirrelly. Then you can use the .ui-datepicker css to make sure it stays fixed if that's what you're after. More info at how-to-control-positioning-of-jqueryui-datepicker.

19
ответ дан 1 December 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: