首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何覆盖jQuery touchSwipe处理程序?

如何覆盖jQuery touchSwipe处理程序?
EN

Stack Overflow用户
提问于 2014-07-19 13:09:27
回答 1查看 1.2K关注 0票数 2

我为一个PhoneGap应用程序构建了一个图形用户界面。在这个应用程序中有很多可浏览的页面。我使用jQuery插件"touchSwipe“来设置刷处理程序。

当我点击一个向应用程序添加新页面的按钮时,页面的数量会发生变化。

我的问题是,当我添加一个新页面时,新页面上的滑动不起作用。当我添加一个页面时,我只需再次调用该方法,这将设置"touchSwipe“处理程序。

代码语言:javascript
复制
$(".page").swipe({
 swipeStatus: function(event, phase,
 direction, distance, duration,fingerCount) {
  CODE HERE
 }
});

因此,hanlder与类“页面”一起附加到所有元素。添加的新元素也具有这个类。

我想覆盖处理程序是不可能的?

由于性能问题,我无法将swipe处理程序添加到单个元素中。我正在用一个小例子脚本进行测试。

代码语言:javascript
复制
 $("#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()元素吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-19 15:23:54

尝试destroy而不是unbind

代码语言:javascript
复制
$("#unbindSwipeHandler").click(function() {
        $("#swipeField").swipe('destroy');
    });
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24840739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档