使用Hammer.js和.on()绑定事件

Hammer.js为我的网络应用添加了javascript触摸和手势支持。 我的问题在于使用.hammer()与DOM元素不存在,直到对文档准备好.ajax()调用。

以前,我使用过类似的东西:

$('#parent').on('click', '.child', function(e){ $(this).hammer()... }); 

但是,我需要能够在不调用.on()的情况下将事件与Hammer绑定,因为.on()事件类型与Hammer事件类型不匹配。 任何帮助都表示赞赏 – 我绝不是一个jQuery天才,我也不熟悉事件绑定。

查看jquery.hammer.js源代码,您应该没有问题委派事件。

 $("#parent").on("doubletap",".child",dostuff); 

只需确保在将元素添加到页面时调用元素上的.hammer()

试试toe.js吧

一个由Hammer.js启发的库是toe.js ,它使用jQuery特殊事件API,其中Hammer.js使用自定义实现。

因此,如果不对元素进行任何进一步初始化,您应该能够像以下一样使用它:

 $('#parent').on('tap', '.child', function(e){ // ... Do something }); 

我已切换到toe.js,因为backbone.js使用标准的jQuery事件API。