使用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。