5

我有一个日期选择器控制器,当用户触摸屏幕上不是日期选择器的某个位置时,我想模糊它。我遇到的问题是我不明白是什么触发了模糊事件。例如,如果用户触摸下个月触发模糊事件,所以我想说,如果 relatedTarget 是 datepicker (下个月)内的一个类,那么如果 relatedTarget 是,则显示下个月并且不隐藏 datepicker不在日历上隐藏它。问题是relatedTarget 总是未定义的。

所以我有两个问题:

  1. 是什么触发了移动 Safari 上的模糊事件?
  2. 为什么移动 Safari 中的 event.relatedTarget 属性总是未定义?
4

2 回答 2

2

在这里找到:http: //developer.apple.com/library/IOs/#documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW5

以下注释:“iOS 注意:虽然不支持拖放,但您可以使用触摸事件产生与 Safari CSS 视觉效果指南中的“使用触摸拖动元素”中所述相同的效果。卸载事件可能无法按预期工作用于前后优化。请改用 pageshow 和 pagehide 事件。

高温高压

于 2011-11-16T10:32:04.437 回答
0

旧帖子,但可能有助于未来参考。

前几天遇到了同样的问题。关于您的第一个问题:是什么触发了移动 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
}
于 2017-07-13T09:23:55.390 回答