1

jQuery Mobile の pagecreate を使用していくつかの jQuery 関数をページにロードする方法を理解するのに苦労しています。ページが読み込まれるたびに (直接アクセスするかクリックするかに関係なく)、以下の左スワイプ機能にアクセスしたいと思います...

これは、ページに直接アクセスすると正しく機能しますが、ページに戻ろうとすると (つまり、href タグを介して移動すると)、機能しなくなります。何か案は?ありがとう!

<script type='text/javascript'>
$('#listitem').live('pagecreate',function(event){
$.event.special.swipe.horizontalDistanceThreshold = 130;
$("#listitem").swipeleft(function() {
    $('#settings_click').click();
});
});
</script>

<div data-role="page" id="listitem">
<?php //content in here ?>
</div>
4

1 に答える 1

2

私はあなたに実用的な例を作りました: http://jsfiddle.net/Gajotres/QFuGK/

$(document).on('pagebeforeshow', '#listitem', function(event){       
    $.event.special.swipe.horizontalDistanceThreshold = 130;        
    $(document).off('swipeleft').on('swipeleft', '#listitem', function(){     
        $('#settings_click').trigger('click');
    });        

    $(document).off('click').on('click', '#settings_click', function(){  
        alert('Button clicked');
    });         
});

pagebeforeshow イベントで pagecreate を変更する必要があります。

このコードをテストするには、実際のサンプル内で別のページに移動して戻ってきます。スワイプ イベントは正常にトリガーされます。

もう1つ、 .off( メソッドを使用して、イベントを再度適用する前にイベントを削除します。これがないと、ページに戻ったときに swipeleft イベントが何度もバインドされます。

于 2013-03-23T09:53:56.023 に答える