Javascript 在JQuery和AngularJS中,有没有办法用touchend监听器替换所有的点击监听器?

Javascript 在JQuery和AngularJS中,有没有办法用touchend监听器替换所有的点击监听器?,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我相信你听过很多,但我似乎找不到一个好的解决办法 有没有办法将任何单击监听器与触摸端监听器交换 由于我的iPad web应用程序自动根据屏幕调整大小,我认为我们的用户(不管怎样,内部用户)不需要双击来缩放,300毫秒的等待真的很残酷 我能做点什么吗 $(document).click(function(e){ e.preventDefault(); }); $(document).bind('touchend', function(e){ e.currentTarget.click(

我相信你听过很多,但我似乎找不到一个好的解决办法

有没有办法将任何
单击
监听器与
触摸端
监听器交换

由于我的iPad web应用程序自动根据屏幕调整大小,我认为我们的用户(不管怎样,内部用户)不需要双击来缩放,300毫秒的等待真的很残酷

我能做点什么吗

$(document).click(function(e){
   e.preventDefault();
});
$(document).bind('touchend', function(e){
   e.currentTarget.click();
});
或者类似的东西会影响整个页面/应用程序的全局?理想情况下,只有在检测到页面上的
touchEvent
功能时,我才会运行此代码。(尽管带鼠标的触摸屏显示器有点让人困惑…)


提前谢谢

如果您的应用程序已经开发完成,那么一个银弹方法就是插入一个垫片,全局处理触摸事件(同时抑制默认鼠标事件)并分派相应的鼠标事件


有一些图书馆可以做到这一点。我成功使用的一个是:。它设置简单,可配置性强,不在桌面浏览器上插入监听器,并将消除300毫秒的延迟。

将模块ngTouch()包括在您的模块中。

如中所述,您可以使用以下代码:

// 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!

获取侦听器,然后替换/修改。希望能有帮助

我最后使用的是AngularTouch(ngTouch)

这很管用,但我在混合时遇到了问题:

  • 安格拉斯

  • 角触

  • jquery

  • jqueryui(可拖动和可下降)

  • jquery touchpunch(用于移动设备)


我最后做的是使用:(按此顺序)

  • jquery

  • jqueryui

  • jquerytouchpunch

  • 安格拉斯


这允许快速点击和拖放移动

非常感谢。我是否必须将
ng touch
指令添加到我的按钮?或者将此交换
点击
触摸
?它将取代ng click指令。所以你不需要做任何特殊的事情来标记它的工作。这是一个很好的资源。谢谢!