我有一个datepicker控制器,当用户触摸屏幕上某个不是datepicker的地方时,我想模糊。我遇到的问题是我不明白触发模糊事件的原因。例如,如果用户触摸下个月触发模糊事件,那么我想说,如果relatedTarget是datepicker(下个月)内的一个类,那么显示下个月并且不隐藏datepicker,如果relatedTarget是不在日历上隐藏它。问题是relatedTarget 总是未定义的。
所以我有两个问题:
答案 0 :(得分:2)
以下说明: “iOS注意:虽然不支持拖放,但您可以使用”Safari CSS视觉效果指南“中的”使用触摸拖动元素“中所述的触摸事件生成相同的效果。 卸载事件可能无法按预期进行后退和前向优化。请改用pageshow和pagehide事件。“
HTH
答案 1 :(得分:0)
旧帖子,但可能有助于futere参考。
前几天遇到同样的问题。关于你的第一个问题:在移动Safari上触发模糊事件的原因是什么? - >在触摸事件(iPad / iPhone)的情况下触发 。
我通过在封闭的div上设置一个事件监听器来处理它。与你(至少我)可能期望的内容相反,你想要听的事是“点击”。简化情况下面:
<div id="enclosing-div">
<input type="date" "id="date-picker-field">
<!--Whatever other elements you might have in the enclosing div-->
</div>
现在你的js看起来像这样:
//js
//Get the enclosing div
var enclosingDiv = document.getElementById('enclosing-div');
//Set up an event listener
enclosingDiv.addEventListener('click', blurEnclosedElements);
//function to handle the event listener
function blurEnclosedElements(){
//Get the element(s) you want to blur and apply your blur logics to it
}