简体   繁体   English

可滚动div上的jQuery DateTimePicker

[英]jquery DateTimePicker on scrollable div

I'm using this jquery plugin for a dateTimePicker: http://xdsoft.net/jqplugins/datetimepicker/ 我将这个jquery插件用于dateTimePicker: http : //xdsoft.net/jqplugins/datetimepicker/

It works fine but there is a problem with displaying it in a scrollable div/content. 它工作正常,但在可滚动的div / content中显示它存在问题。

The position isn't fixed to the input anymore. 该位置不再固定于输入。 It is fixed to the HTML surrounded and it will stay where it is after scrolling. 它固定在周围的HTML上,滚动后将保持原样。 在此处输入图片说明

The second problem is that the calendar is overlapping the "red line" on the bottom. 第二个问题是日历与底部的“红线”重叠。 In my case this represents the browser bottom and therefore it would cut the calendar and it's not usable anymore. 在我的情况下,这表示浏览器底部,因此将缩短日历,并且不再可用。

The plugin supports to appear above the input if the content below is to small but not in this case. 如果下面的内容很小,则插件支持显示在输入上方,但在这种情况下则不行。

Does anybody have an idea how to solve this issue? 有人知道如何解决这个问题吗? The documentation of the plugin has some iFrame support but i cant see a way using this for my specific problem. 该插件的文档提供了一些iFrame支持,但我无法针对我的特定问题使用此方法。

Example Page: http://heymark.de/test/test.html 范例网页: http//heymark.de/test/test.html

Regards! 问候!

Took some time and digging in the source (It's always a shame that developers don't give a complete set of callbacks!). 花了一些时间并深入研究了源代码(开发人员没有提供完整的回调集总是很可惜的!)。

I used the afterOpen.xdsoft event (which is not documented, and used internally, so I guess you can't rely on it to work in future versions). 我使用了afterOpen.xdsoft事件(未记录,并且在内部使用,因此我想您不能依靠它在以后的版本中使用)。

But in this example it works: 但在此示例中,它可以工作:

 $(document).ready(function() { $('#datetimepicker1').datetimepicker({ onShow: function() { $('#content').append(this) } }) $('#datetimepicker2').datetimepicker({ onShow: function() { $('#content').append(this) } }) $(document).on('afterOpen.xdsoft', function(event) { $(event.target).position({ my: 'left top', at: 'left bottom', of: $(event.target).data('input') }) }); $("#dt1").datepicker({ dateFormat: "dd/mm/yy", buttomText: "Arrival date", buttonImageOnly: true, beforeShow:function(textbox, instance){ $('#ui-datepicker-div').css({ position: 'absolute', top:-20, left:5 }); $('#content').append($('#ui-datepicker-div')); $('#ui-datepicker-div').hide(); } }); }); 
 #content { background: #fff; height: 500px; width: 500px; position: relative; overflow: scroll; border: 2px solid red; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="http://code.jquery.com/ui/1.12.0/jquery-ui.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.4/build/jquery.datetimepicker.full.min.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.4/build/jquery.datetimepicker.min.css" /> <div id="content"> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. <br/> <br/>Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.<br/><br/> <input id="datetimepicker1" type="text" value="2014/03/15 05:06"> not working: dateTimePicker<br/> <input id="dt1" /> working: jqueryUI Datepicker<br/> <br/>Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet <br/><br/> <input id="datetimepicker2" type="text" value="2014/03/15 05:06"> not working: dateTimePicker<br/> clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.<br/><br/>Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.<br/><br/>Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.<br/> </div> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> 

<div class="well">
  <div id="datetimepicker1" class="input-append date">
    <input data-format="dd/MM/yyyy hh:mm:ss" type="text"></input>
    <span class="add-on">
      <i data-time-icon="icon-time" data-date-icon="icon-calendar">
      </i>
    </span>
  </div>
</div>
<script type="text/javascript">
  $(function() {
    $('#datetimepicker1').datetimepicker({
      language: 'pt-BR'
    });
  });
</script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM