0

JQuery モバイルの swipeleft & swiperight イベントのアクションを動的に制御しようとしていますが、Jquery Mobile は命令を追加しているようです。元:

function student_control(stat){
if (stat==true){
    $("#pageholder").swipeleft(function(e) {
        previousPage();
    });

    $("#pageholder").swiperight(function(e) {
        nextPage();
    });
}
else{
    $("#pageholder").swipeleft(function(e) {console.log('disabled');});

    $("#pageholder").swiperight(function(e) {console.log('disabled');});
}
}

最初の呼び出しで統計が true で、2 番目の呼び出しで false の場合、関数は「無効」をログに記録し、ページも変更します (関数が呼び出された場合、2 ページ前後に進みます)。JQuery Mobile を意味します。内部で与えられたすべての指示を保存し、function(){}それらを書き換えません。

それらを書き換える方法はありますか?

4

1 に答える 1

0

最後にそれを見つけました。バインドを解除して再バインドすると機能します...

無効にする

$("#pageholder").unbind('swipeleft');
$("#pageholder").unbind('swiperight');

有効

$("#pageholder").bind('swipeleft', function (){
//do something here
});
$("#pageholder").bind('swiperight', function (){
//do something here
});

http://jsfiddle.net/domeri/jMpMw/1/

于 2013-06-25T12:46:18.013 に答える