0

を使用してページのスクロールを無効にしたドキュメントがあります

$('body').bind('touchmove', false);

ボタンをクリックした後、ページをdivに動的にロードしています...

$('#myContentPage').load('details.html #myCOntentPage');

ロードが完了した後、div #myContentPage からのみ「touchmove」のバインドを解除したい。私は試した

$('#myContentPage').bind('touchmove', true);ページの読み込み後ですが、うまくいかないようです。

ロード前の HTML 構造

<body>
    <div id="header"/>
    <div id="details"/>
    <div id="myContentPage" />
</body>

ロード後の HTML 構造

<body>
    <div id="header"/>
    <div id="details"/>
    <div id="myContentPage" >
        <div ... />
        <div.... />
    </div>
</body>
4

4 に答える 4

0

touchmove問題は、イベント コールバック フォーム'#myContentPage'が彼の親にアタッチされているため、デタッチできないことです。それを修正する最善の方法は、イベントをキャンセルする伝播を停止<body>する新しいハンドラを にアタッチすることです。#myContentPage<body>

$('#myContentPage').load('details.html #myCOntentPage', function() {
    $('#myContentPage').bind('touchmove', function(event){
        event.stopPropagation() ;
    }); 
});

それでも解決しない場合 (不明な理由から)、これを試してください:

$('#myContentPage').load('details.html #myCOntentPage', function() {
    $('body').unbind('touchmove');
    $('body').on('touchmove', ':not(#myContentPage)', function(){
        return false;
    });
});
于 2012-05-07T07:44:16.963 に答える
0

試す:

$('body').bind('touchmove', function(ev){
  if ( ev.target.id != "myContentPage"){
    return false;
  }
});

それ以外の: $('body').bind('touchmove', false);

于 2012-05-07T07:52:19.630 に答える
0
 $('#myContentPage').off('touchmove'); // if you bind event using `on()`

また

 $('#myContentPage').unbind('touchmove');

それで、

$('#myContentPage').load('details.html #myCOntentPage', function() {
    $('#myContentPage').off('touchmove'); 
});
于 2012-05-07T07:46:57.733 に答える
0

新しいページが読み込まれた後、これを使用して、以前に添付されたイベントのバインドを解除できます

$('#myContentPage').unbind('touchmove'); 
于 2012-05-07T07:47:49.447 に答える