お世話になります。
現在、ページ上で左右にスワイプをすると対応したメニュー画面が開かれる機能をjQueryで実装しているのですが、
ある要素上(画面横にスクロールする要素)ではその処理を止めたくなりました。
そこで、処理を止めたい要素でtouchstartイベントが実行された時からtouchendイベントが実行されるまで、trueとfalseを変数に持たせておきそれで判定をしようとしました。
jquery
1$(function(){ 2 var hoge; 3 $("body").on('touchstart', function(event){ 4 //touchstartの処理 5 }); 6 $("body").on('touchend', function(event){ 7 if(hoge){ //noMenuがタッチされてから離されるまでこの処理を止めたい 8 //touchendの処理 9 } 10 }); 11 $(".noMenu").on("touchstart", function(){ 12 hoge= false; 13 }); 14 15 $(".noMenu").on("touchend", function(){ 16 hoge= true; 17 }); 18 19}); 20
しかし、bodyのtouchendよりもnoMenuのほうが優先されてしまい、理想通りの動きになりません。
記載順の問題かと思い、$(".noMenu").on("touchend"...の個所をbodyのtouchendイベントの前に置くなどしましたが、同じ動作でした。
jQueryのバージョンは1.8.3です。
何故、このような動作をするのでしょうか、ご教示のほど、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー