2017-09-19 12 views
1

基本的に私はこのモバイルメニューを持っていますLink(ウィンドウのサイズを変更してモバイルメニューを表示してください)。問題は、モバイルでは、ユーザーは通常、コンテンツを見るためにスワイプするということです。モバイルのメインメニュー。最初のタッチの代わりに、指のリリース時にメニューの「クリック」をアクティブにする方法はありますか?問題は、スクロールして「メニュー」をタップすると、スクロールの代わりにメニューが開きます。ページ上の他のすべてのリンクは正常です - 最初のタッチではなく、指を離すと「クリック」するだけです。ユーザーが誤って「メニュー」ボタンに触れると、メニューが開きます。ユーザーがメニューボタンを押して離した後にのみメニューを表示したい。これを行うには、私はこのコードを使用しています -TouchEndの終了後にイベントを開始します

jQuery(document).ready(function(){ 
    if (window.Touch) { 
    jQuery('#sidr').bind('touchstart', function(e) { 
     e.preventDefault(); 
    }); 
    jQuery('#sidr').bind('touchend', function(e) { 
     jQuery(this).trigger('click'); 
    }); 
    } 
}); 

しかし、それは動作していない、任意の提案?

私だけでpreventDefaultがjQueryMobile tap handlerを使用してみてください

jQuery(document).ready(function(){ 
jQuery('#sidr').click(function(e){ 
    e.preventDefault(); 
    }) 
}); 

答えて

1

が動作していない気づきました。完了したタッチイベント(すなわち、「touchend」)の後にのみ発動する。あなたはさらに制限することができ、本質的に長いタッチであるtaphold handlerを使用することができます。

+0

この両方の組み合わせ(https://hastebin.com/dipemijuyo.js)でもまだ動作させることはできませんでした。 JS –

+0

になると素人です。コードとドキュメントを読むのが最善の方法ですが、地獄のように退屈だとわかりますが、うまくいきます。 .bindを使用しないでください。必要なのは$(要素).on( 'tap'、function)です。 –

+0

ありがとう、もう一度試してみてください。 –

関連する問題