Я использовал это решение, вероятно, не лучшее, но оно работает для меня. Обратная связь приветствуется
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'});
}
}
});