为什么iOS Safari Mobile(iPhone/iPad)中没有触发模糊事件?

Moh*_*ain 18 html javascript iphone ipad ios

我有两个绑定到锚标记的事件处理程序:一个用于焦点和模糊.

处理程序在桌面上启动,但在iphone和ipad中只有焦点被正确触发.如果我在锚标记外单击,则不会触发模糊(仅当我单击页面中的其他表单元素时模糊才会触发):

    $("a").focus(function(){
        console.log("focus fired");
    });

    $("a").blur(function(){
        console.log("blur fired");
    }); 
Run Code Online (Sandbox Code Playgroud)

HTML:

<html>
<form>
    <a href="#">test link</a>
    <div>
    <input type="text" title="" size="38" value="" id="lname1" name="" class="text">
    </div>
    <div style="padding:100px">
        <p>test content</p>
    </div>
</form>
</html>
Run Code Online (Sandbox Code Playgroud)

Nic*_*nks 9

如果锚点附加了任何事件,则在iOS中首次点击它会导致锚点进入悬停状态并进行聚焦.轻击即可移除悬停状态,但链接仍然保持聚焦状态.这是设计的.要在iOS上正确控制应用程序,您需要实现基于触摸的事件并对这些事件做出反应而不是桌面事件.

一个完整的指南,使用Javascript事件WebKit的iOS上.

  • 我已经阅读了发布的指南,但仍然没有看到你在输入元素失去焦点时如何检测?你能发一个代码示例吗? (4认同)
  • 我在 https://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html 中发现了一件更有趣的事情,只有当我点击可点击元素而不是锚标签时失去焦点。 (2认同)