什么触发了移动游猎(iPad)上的模糊事件

时间:2011-02-21 15:49:07

标签: javascript ipad mobile-safari onblur

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

所以我有两个问题:

  1. 移动Safari上的模糊事件是什么?
  2. 为什么在移动Safari中始终未定义event.relatedTarget属性?

2 个答案:

答案 0 :(得分: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事件。“

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
}