如何在基于 ember 的应用程序中识别长按手势?

Posted

技术标签:

【中文标题】如何在基于 ember 的应用程序中识别长按手势?【英文标题】:How to recognize long-press gesture in ember-based app? 【发布时间】:2013-12-24 02:44:30 【问题描述】:

现在我正在开发基于html5和phoneGap的移动应用程序。JS名气是ember。应用程序的规范要求响应长按手势。但长按事件不是 ember 内置事件。

我应该怎么做才能识别手势并连接到事件处理(控制器或路由)?

【问题讨论】:

你有某种处理长按的 javascript 库吗?如果是这样,您可以创建一个 Ember 视图并使用它来处理长按 DOM 事件。 这是一个 SO answer 有一个脚本。 Ember 无法处理长按。我使用 touchStart 和 touchEnd 事件来处理问题。 【参考方案1】:

我可以使用mouseUpmouseDown 完成此操作,但我确定您可以使用touchStarttouchEnd 事件。见here

我设置了一个jsbin,但这里是相关代码:

var myfunction = function()  
  alert('held');


App.ApplicationView = Ember.View.extend(
  mouseDown: function(e)
   var runLater = Ember.run.later(this, myfunction, 1000);
    this.set('pressed', runLater);
  ,

  mouseUp: function (e)  
    Ember.run.cancel(this.get('pressed'));
  
)

【讨论】:

如果我想在“myfunction”中访问view的属性怎么办?例如,我想向相关控制器发送一个事件。

以上是关于如何在基于 ember 的应用程序中识别长按手势?的主要内容,如果未能解决你的问题,请参考以下文章

UIAlertView 警报在长按手势识别器中重复三次

UIAlertView 警报在长按手势识别器中重复三次

长按手势在 UIButton 中显示图像

长按手势识别器产生重复位置 (SWIFT)

复制iOS的仪表板应用按钮,一个带有长按手势识别器的按钮

长按手势识别器触发两次[重复]