我遇到的问题似乎只出现在HTML5应用的独立模式下,我将其保存到iOS设备的主页屏幕。
通过独立模式,我的意思是带有以下metatag
的HTML网络应用:
<meta name="apple-mobile-web-app-capable" content="yes">
有问题的javascript(用coffeescript编写)如下:
$( ->
$(document).on('click', 'input', (e) ->
alert('click')
)
$(document).on('focusout', 'input', (e) ->
alert('blur')
)
)
这些是委托事件处理程序来处理动态注入的<input>
元素。 alert()
消息在Mobile Safari中显示正常。但是,当以独立模式查看Web应用程序时(即,从主页屏幕启动),事件不会触发。
我正在使用jQuery v1.10.2,如果这有用的话。
答案 0 :(得分:0)
我遇到了一个类似的问题,即动态创建的输入没有光标或允许您在第一次单击/触摸输入时键入它们。键盘出现,页面滚动使得看起来输入被选中,但事实上,它不是。输入中的第二次触摸/点击将光标置于输入中,并允许输入文本。
我的解决方法是将touchend事件附加到该特定输入,然后使用jQuery的focus()以编程方式再次聚焦该输入。我不得不使用touchend因为click事件不会以独立模式触发。
下面是一段代码片段,您不得不原谅语法,我使用的是Backbone。这是我输入的touchend上调用的方法。
clickedInput: function (e) {
if (window.navigator.standalone) {
$(e.currentTarget).focus();
}
}