我试图让jGestures使用Backbone.js应用程序而没有太多运气。
我将脚本包含在页面底部。
<script type="text/javascript" src="jquery-1.7.2.js"></script>
<script type="text/javascript" src="jgestures.min.js"></script>
<script type="text/javascript" src="underscore.js"></script>
<script type="text/javascript" src="backbone.js"></script>
<script type="text/javascript" src="backbone.localStorage.js"></script>
<script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>
<script type="text/javascript" src="src/app_root.js"></script>
<script type="text/javascript" src="src/app_beverage.js"></script>
<script type="text/javascript" src="src/app_order.js"></script>
<script type="text/javascript" src="src/app_people.js"></script>
<script type="text/javascript" src="src/app_router.js"></script>
并附上手势处理程序。
events: {
"tapone .test": "something"
}
我知道事件处理程序已正确连接,因为我可以通过控制台手动触发它(在桌面上,而不是移动设备上)。
$(".test").trigger("tapone");
但是在iOS 5中运行代码看起来jGestures代码没有生成触摸事件。是否有其他人需要做才能触发这些触摸事件?我正在使用Backbone路由器,所以我可能需要在更新DOM后再次启动库吗?
答案 0 :(得分:0)
Backbone.View.events
代表直接通过jQuery.bind
和jQuery.delegate
,查看Backbone.View.delegateEvents' code。
因此,如果您的事件绑定定义可以这样工作:
$(<your View.el DOM element>).delegate(selector, eventName, method);
然后它应该与Backbone一起使用。
例如,您可以尝试:
$(<your View.el DOM element>).delegate( ".test", "tapone", function(){ console.log( "hi! tapone" ); } );
尝试直接在jQuery中定义事件绑定,看看是否以这种方式执行事件是在预期时触发的,如果没有那么问题是在Backbone之外,如果它确实那么问题应该在你的实现中。我认为这两个问题都不会出现在Backbone本身。