我为一个PhoneGap应用程序构建了一个图形用户界面。在这个应用程序中有很多可浏览的页面。我使用jQuery插件"touchSwipe“来设置刷处理程序。
当我点击一个向应用程序添加新页面的按钮时,页面的数量会发生变化。
我的问题是,当我添加一个新页面时,新页面上的滑动不起作用。当我添加一个页面时,我只需再次调用该方法,这将设置"touchSwipe“处理程序。
$(".page").swipe({
swipeStatus: function(event, phase,
direction, distance, duration,fingerCount) {
CODE HERE
}
});因此,hanlder与类“页面”一起附加到所有元素。添加的新元素也具有这个类。
我想覆盖处理程序是不可能的?
由于性能问题,我无法将swipe处理程序添加到单个元素中。我正在用一个小例子脚本进行测试。
$("#swipeField").swipe({
swipeStatus: function(event, phase, direction, distance, duration, fingerCount) {
$(this).text("You swiped: " + direction);
}
});
$("#unbindSwipeHandler").click(function() {
$("#swipeField").unbind();
});
$("#setSwipeHandler").click(function() {
$("#swipeField").swipe({
swipeStatus: function(event, phase, direction, distance, duration, fingerCount) {
$(this).text("You swiped: " + direction);
}
});
});我想这个解决方案应该有一个更好的性能。问题是它根本行不通。正如您所看到的,当我打开页面时,刷处理程序会被设置,并且方向会显示在swipe字段中。单击按钮解除绑定后,文本不再更改。但是,当我按下"setSwipeHandler“按钮时,什么都不会发生--处理程序没有设置。
所以我不能绑定以前的.unbind()元素吗?
发布于 2014-07-19 15:23:54
尝试destroy而不是unbind
$("#unbindSwipeHandler").click(function() {
$("#swipeField").swipe('destroy');
});https://stackoverflow.com/questions/24840739
复制相似问题