我确定你已经听过很多,但我似乎无法找到一个好的解决方案。
有没有办法与click
个听众交换任何touchend
个听众?
由于我的iPad网络应用程序会自动调整屏幕大小,我不认为我们的用户(内部,无论如何)需要双击才能缩放,300毫秒等待真的很残酷。
我可以做点什么吗
$(document).click(function(e){
e.preventDefault();
});
$(document).bind('touchend', function(e){
e.currentTarget.click();
});
或类似的东西会影响整个页面/应用程序全局?理想情况下,只有在我检测到页面上的touchEvent
功能时,我才会运行此代码。 (虽然带有鼠标的触摸屏显示器会让事情混乱......)
提前致谢!
答案 0 :(得分:2)
如果您的应用程序已经开发,那么一个银弹方法可能是插入一个全局处理触摸事件的垫片(同时抑制默认鼠标事件)并调度相应的鼠标事件。
有一些库可以做到这一点。我成功使用的一个是: fastclick 。它设置简单,可配置,不会在桌面浏览器上插入监听器,并且会消除300ms的延迟。
答案 1 :(得分:1)
在模块中包含模块ngTouch(http://docs.angularjs.org/api/ngTouch)。
答案 2 :(得分:1)
如other question中所述,您可以使用此代码:
// List bound events:
console.dir( jQuery('#elem').data('events') );
// Log ALL handlers for ALL events:
jQuery.each($('#elem').data('events'), function(i, event){
jQuery.each(event, function(i, handler){
console.log( handler.toString() );
});
});
// You can see the actual functions which will occur
// on certain events; great for debugging!
获取侦听器然后替换/修改。希望它有所帮助!
答案 3 :(得分:0)
我最终做的是使用AngularTouch(ngTouch)。
这很有效,但我在混音方面遇到了问题:
angularJS
angularTouch
jquery的
jqueryui(可拖动和可放置)
jquery touchpunch(移动版)
我最终做的是使用:(按此顺序)
jquery的
jQueryUI的
jquery touchpunch
angularjs
这样可以快速点击并拖放手机!