带有touchmove事件的jQuery Mobile

带有touchmove事件的jQuery Mobile,jquery,jquery-mobile,swipe,touchmove,jquery-mobile-flipswitch,Jquery,Jquery Mobile,Swipe,Touchmove,Jquery Mobile Flipswitch,我正在尝试管理一个基本选择开关,如以下文档中所示: 我的代码是: HTML <div class="ui-flipswitch ui-shadow-inset ui-bar-inherit ui-corner-all ui-mini"> <a href="#" class="ui-flipswitch-on ui-btn ui-shadow ui-btn-inherit">On</a> <span class="ui-flips

我正在尝试管理一个基本选择开关,如以下文档中所示:

我的代码是:

HTML

    <div class="ui-flipswitch ui-shadow-inset ui-bar-inherit ui-corner-all ui-mini">
    <a href="#" class="ui-flipswitch-on ui-btn ui-shadow ui-btn-inherit">On</a>
    <span class="ui-flipswitch-off">Off</span>
    <select data-role="flipswitch" data-mini="true" 
name="login-memo-codice-inpt" id="login-memo-codice-inpt" class="ui-
flipswitch-input" tabindex="-1" disabled="">
    <option value="off">Off</option>
    <option value="on">On</option>
    </select>
    </div> 
当我从左(开)向右(关)或从右(关)向左(开)滑动时,它会工作

我的问题是:

  • 如果我把手指放在开关上,然后向右(关闭)开关 状态变为OFF,然后立即返回ON
  • 如果我用手指按住OFF,然后向左(打开)滑动,状态变为on,然后立即返回OFF
    如何解决这个问题?

    我想对于您的需求来说,它不是正确的东西,可能是您需要使用scratch实现:)@stanze您的意思是我必须重写所有代码吗?
    inputManager.my_slider=function(page){
        var enableTap=false;
        var executed=false;
        var flipswitch=page.find(".ui-flipswitch");
        flipswitch.on("touchstart",function(e){
            enableTap=true;
            executed=false;
        });
        flipswitch.on("tap",function(){
            if(executed){
                return false;
            }
        });     
        flipswitch.on("touchmove",function(e){
            if(enableTap){
                enableTap=false;
                $(this).trigger("click");
                executed=true;
            }           
        });
        flipswitch.on("touchend",function(e){
            enableTap=false;
        });                     
        page.find(".ui-flipswitch-input").prop("disabled",true);
        page.find(".ui-flipswitch-input").on("touchstart focus",function(event){
            event.preventDefault();             
            $(this).blur();
            return false;
        });
        if(libs.check_current_device().ieMobile){
            flipswitch.on("mousedown",function(e){
                $(this).trigger("click");
            });
        }
    };