(希望)简单的问题:
是否可以使 jQuery UI Datepicker 可拖动?如果是这样,有人可以给我一些示例代码吗?
(希望)简单的问题:
是否可以使 jQuery UI Datepicker 可拖动?如果是这样,有人可以给我一些示例代码吗?
$(".ui-datepicker").draggable() 不起作用?
顺序很重要。
$('#myCalendarInput').datepicker();
$('#ui-datepicker-div').draggable();
编辑:@JZ 提供的答案和我的答案之间存在细微差别。使用 JZ 的示例,页面上的任何日期选择器都是可拖动的,即使是内联的(与 DIV 而不是输入元素相关联)。我的代码只会使弹出日期选择器可拖动。datepicker 插件为所有弹出窗口创建一个单独的 DIV(名为 ui-datepicker-div),并将其重用于应用了 datepicker 的页面上的任何输入。对于内联 DIV 或 SPAN,它会在具有 .ui-datepicker 类但没有名称的 DIV/SPAN 内创建一个新的未命名日期选择器。在这种情况下,我的代码不会使日期选择器可拖动,可以说是正确的行为,但 JZ 会因为它将基于类进行匹配。
例子:
<script type="text/javascript">
$(document).ready(function() {
$('#calendar').datepicker();
$('#calendar2').datepicker();
$('#calendar3').datepicker();
$('#ui-datepicker-div').draggable();
});
</script>
<div>
Calendar: <input id="calendar" type="text" /><br /> <-- draggable
Calendar2: <input id="calendar2" type="text" /><br/> <-- draggable
Fixed calendar: <div id="calendar3"></div> <-- fixed
</div>
您可以在 datepicker 中添加一个事件并使用它来使其可拖动。
//Add an event "onCreate"
$.datepicker._updateDatepicker_Old = $.datepicker._updateDatepicker;
$.datepicker._updateDatepicker = function(inst) {
this._updateDatepicker_Old(inst);
var onCreate = this._get(inst, 'onCreate');
if (onCreate !== null) {
onCreate(inst);
}
};
After you call datepicker and implements the function onCreate to made it draggable.
$(function() {
//Create datepicker
$('#datepicker').datepicker({
onCreate: function(inst) {
$(inst.dpDiv).draggable();
}
});
});