我在我的PHP站点中添加了jquery datepicker。在iOS上单击外部时,日期选择器不会消失。它在桌面上运行良好。有人遇到过这个问题吗?
答案 0 :(得分:0)
您的日期选择器具有hasDatepicker类,因此请尝试以下操作:
func datesOfCurrentMonth(with weekday : Int) -> [Date] {
let calendar = Calendar.current
var components = calendar.dateComponents([.year, .month, .weekdayOrdinal], from: Date())
components.weekday = weekday
var result = [Date]()
for ordinal in 1..<6 { // maximum 5 occurrences
components.weekdayOrdinal = ordinal
let date = calendar.date(from: components)!
if calendar.component(.month, from: date) != components.month! { break }
result.append(calendar.date(from: components)!)
}
return result
}
与我想到的其他方式相比,它相对较短。
$(".hasDatepicker").blur(function(e) { $(this).datepicker("hide"); });
我遇到的问题是能够分辨单击跨度图标的时间,它不是真的想要合作,因此额外的内容具有类检查功能
答案 1 :(得分:0)
我使用了这种解决方案,可能不是最好的,但对我有用。欢迎反馈
CSS:
#backdrop {visibility:hidden;z-index: 5;position:fixed;background-color:#000;height:100%;width:100%;top:0px;left:0px;margin:0px;padding:0px;}
将z-index
调整为适当的值,以确保#backdrop(未隐藏时)位于其他元素的前面,并且Datepicker在堆栈顺序中最高
jQuery:
$jq('#elementid').datepicker({
beforeShow: function(){
if (navigator.userAgent.match(/(iPod|iPhone|iPad)/) && !window.MSStream) {
if ($('backdrop') == null) {
var screen = new Element('div', {'id': 'backdrop'});
document.body.appendChild(screen);
}
Event.observe('backdrop', 'click', function() {
$jq("$jq('#elementid').").datepicker("hide");
});
$jq('#backdrop').css({'visibility': 'visible', 'opacity': '0'}); //adjust visible opacity if required
},
onClose: function(){
if ($('backdrop') != null) {
$jq('#backdrop').css({'visibility': 'hidden', 'opacity': '0'});
}
}
});