jGestures使用Backbone.js需要什么特别的东西?

时间:2012-08-03 23:36:26

标签: backbone.js jgestures

我试图让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后再次启动库吗?

1 个答案:

答案 0 :(得分:0)

Backbone.View.events代表直接通过jQuery.bindjQuery.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本身。