最近在开发iPhone版的网站,接触到了一个jQuery插件,叫jQTouch。 这个插件是专门针对iPhone做jQuery效果的。但是在使用中遇到了许多问题,大部分是和之前的Javascript写法的冲突,列在下面以供参考。
1、页面跳转 jQTouch需要用target="_webapp"来做页面跳转,不然会出问题噢。
2、tap和click 网上搜到有人在问: I noticed an interesting bug with the JQTouch platform and wanted to know if anyone else has run into it our has a workaround for it. If I have a link with an onclick event and lightly tap the link on the iPhone, the link works, but the click event is not fired. If I tap the same link harder, the event fires. Any thoughts on this? 解决方法是使用tap来代替click。iOS系列会在轻触链接时产生tap事件,重触产生tap和click事件。 当然你可以使用这样的语句来判断系统
var userAgent = navigator.userAgent.toLowerCase(); var isiPhone = (userAgent.indexOf('iphone') != -1) ? true : false; if(userAgent.indexOf('ipod') != -1) isiPhone = false; // turn off taps for iPod Touches clickEvent = isiPhone ? 'tap' : 'click'; $('#somelink').bind(clickEvent, function(){...});
3、与Ajax的不兼容 jQTouch将顶层的多个div分成多个页面显示,是靠div的id来进行跳转的。 如果你用Ajax来把整个div刷新,那么在back的时候就找不到原来的div id了,一方面使用back会出错,另一方面在跳转div的时候Ajax新拿到的页面不会被去掉class="current"标记,导致几个页面重叠显示。如果跳到的页面比较长那还好,否则就杯具了…… 暂时遇到这几个,有遇到再补充!
来源:http://kylinhuang.blog.163.com/blog/static/18259419620101166344177/