【发布时间】:2017-06-21 09:59:54
【问题描述】:
我正在使用这个 JavaScript 插件:jQuery Slide Over
它允许我在主要内容上显示一个滑动面板。我正在使用它进行过滤。
大多数情况下它都很好用,但我在让 jQuery Date Picker 配合时遇到了问题。似乎日期选择器不会应用于输入,因为它开始隐藏。所以我尝试使用“onOpen”事件来应用日期选择器..但这也不起作用。
我在这里创建了一个问题的 JS 小提琴:
因为 SO 不允许我在没有随附代码的情况下发布小提琴,所以这里是:
JavaScript
$('#TestDate').datepicker({ maxDate: 0, dateFormat: 'yy-mm-dd' });
$('*[data-slideover="open"]').slideOver({
orientation: 'left',
animationSpeed: 300,
overlayColor: 'rgba(18,19,20,0.9)',
onOpen: function () {
var selectedDatePicker = $('#SelectedDate');
if (!selectedDatePicker.hasClass('hasDatepicker')) {
selectedDatePicker.datepicker({ maxDate: 0, dateFormat: 'yy-mm-dd' });
}
}
});
HTML
<div class="container-fluid">
<a href="#slideover1" class="btn btn-primary" data-slideover="open">
<i class="fa fa-filter"></i>
</a>
<div id="slideover1" class="slideover-content">
FILTERS
<input type="text" id="SelectedDate" name="SelectedDate" value="2017-01-01" class="form-control" />
</div>
<div class="row">
<div id="main-container" class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
BLAH BLAH BLAH
<br />
<input type="text" id="TestDate" name="TestDate" value="2017-01-01" class="form-control" />
</div>
</div>
</div>
CSS
.slide-over{
width:30%;
min-width:300px;
}
您将看到 2 个日期选择器 - 其中 1 个位于主要内容区域并且工作正常(仅用于演示目的),而有问题的一个位于滑出面板内,可以通过按下顶部的按钮来触发离开了。
我可以做些什么来让日期选择器在滑动面板内工作?
【问题讨论】:
-
不确定是不是幻灯片插件搞砸了或者到底发生了什么,但在小提琴中,看起来按下按钮打开幻灯片会导致“slideover1”div的内容被复制并附在身体上。生成的 dom 有 2 个以 SelectedDate 作为 id 的元素,而显示的那个似乎没有添加 datePicker。
-
@Some_Guy,谢谢。你只是给了我一个想法,尝试将日期选择器应用于类而不是 ID,它工作正常。我不知道这是否是最好的解决方案,但现在可以了。如果有人有更好的解决方案,请告诉我。
-
虽然似乎有奇怪的行为..就像从 2017 年开始,但点击“上一个”到 1899 年...... 编辑:更糟糕的是,点击日期不会将 更改为日期.. 所以肯定有些东西还是很不稳定.. 不过还是谢谢你看看
-
我同意 Darren Keen 的观点,这可能不是最好的侧边栏插件。最好的办法是尝试另一个
-
@Some_Guy,感谢您的帮助。我决定最简单的事情是 Bootstrap 模态。它运作良好。再次感谢。
标签: javascript jquery jquery-ui jquery-ui-datepicker