我最近开发了一个带有jquery的web应用程序,现在需要在移动设备上使用(特别是ipad)。我现在将jquery mobile添加到混合中,并将click
替换为tap
,这解决了几个问题。我进一步继续将ready
更改为pageinit
- 但这是我遇到障碍的地方。
旧的jquery代码是:
$(document).ready(function() { ... });
这在桌面上运行良好,但在移动设备上有一些问题。我改变了
$(document).pageinit(function() { ... });
这在我的一台开发机器(OS X)和移动设备上运行良好。但是在我的其他开发机器(Ubuntu)上,我收到了错误消息function pageinit does not exist
。然后我将其改为“正确”方式:
$(document).on('pageinit', function() { ... });
这不起作用,因为函数永远不会被调用。我怀疑这是因为onpageinit
事件不存在或类似的事情。我进一步尝试了pageshow
,pagecreate
等 - 结果相同。 Firefox和Chrome也有相同的结果。
那么,我在这里错过了什么?我现在在我的代码中添加了类似的内容:
$doc = $(document);
func = $doc.pageinit ? $doc.pageinit : $doc.ready;
func(function() { ... });
这使它适用于OS X,Ubuntu和iPad,但这感觉/看起来很难看。还有其他建议吗?