dojox / gesture / swipe阻止html选择打开下拉列表

时间:2014-11-05 05:00:24

标签: select dojo swipe

任何人都可以向我解释为什么无法打开放置在div(用dojox / gesture / swipe事件注册)中的html SELECT控件(或任何其他控件如BUTTON)?我欢迎任何变通办法

require({
}, [ 'dojo/dom', 'dojox/gesture/swipe', 'dojo/on', 'dojo/_base/event' ], function(dom, swipe, on, event) {
    var div = dom.byId('testSwipe');
    var isSwipe = false;

    on(div, swipe.end, function(e) {
        console.log("### SWIPE");        
    });
});

http://jsfiddle.net/zLyck884/

1 个答案:

答案 0 :(得分:0)

基于此处的文档,尤其是图片:http://dojotoolkit.org/reference-guide/1.10/dojox/gesture.html

图像描述了dojo如何标准化事件(也适用于桌面)以及滑动如何只是触摸事件的另一层。所以我估计鼠标事件是否被touchstart或其他东西取代,那么它很可能会阻止默认的鼠标动作......

一旦我再次停止传播事件(在SELECT上),它就可以了。

query("select", this.domNode).on(touch.press, function(e){e.stopPropagation()});

其中this.domNode是启用滑动的元素

on(this.domNode, swipe, lang.hitch(this, "_onSwipe"));

不幸的是,覆盖默认行为的滑动(触摸)事件不是很方便,我刚刚离开了dojox / gesture / swipe或touch。我似乎更愿意实现自己的触摸事件处理。