分手触摸事件

时间:2016-07-21 07:33:43

标签: javascript touch sencha-touch-2

让我说我有一个跟随切换。 http://docs.sencha.com/touch/2.4/2.4.2-apidocs/#!/api/Ext.field.Toggle

您可以通过点击或滑动来切换。 如果你不让屏幕继续滑动,并用手指左右滑动, 拨动开始用手指移动。 有没有办法'打破'触摸事件? 期望的行为是我刷卡,然后如果我继续刷,没有任何事情发生,像 手指和屏幕之间的接触丢失了。

我做了什么: 我可以在切换范围内执行此操作 - 如果我在'更改'上禁用它,并启用'touchend'。不好,因为我想在屏幕上为屏幕上的所有切换做这件事,例如,它们中的大多数显然没有被触及,所以不会得到touchend并启用后退

1 个答案:

答案 0 :(得分:0)

为什么不将切换添加到touchstart上的数组(在touchend上将其从数组中删除)。 在屏蔽上,您可以在视图上触发一个事件,该事件遍历数组中的所有项目并且“打破”#39;触摸事件。

控制器:

config: {
    refs: {
        view: '#my-view'
        toggles: '.togglefield'
    },
    control: {
        view: { maskstart: 'hereIBreakTouch'}
        toggles: {touchstart: 'hereIAddToggleToArray'
                  touchend: 'hereIRemoveToggleFromArray'}
    }
},
activeToggles: []

hereIBreakTouch: function() {
    // might want to loop
    var oActiveToggle = this.activeToggles[0];
    oActiveToggle.setEnabled(false);
    //oActiveToggel.fireEvent('touchend');
    Ext.defer(function() {oActiveToggle.setEnabled(true);}, 50, this);
}

这应该可以解决问题。