2017-03-22 11 views
0

私がここに持っている問題は、touchstartです。別の集中入力をクリックしたときにクリックのように振る舞うのではなく、何が起きているのかは、必要なクラスをフッターに追加します。 Touchstartはありません。代わりに、それはぼかしのためにすぐに行動するように見え、ぼかしはその後起こる。jQueryのタッチスタートがぼかしのために機能しない

これを停止する方法を知っている人は誰でも知っていますか?はクリックのように動作しますか?

$('input:not(:radio)').on('click touchstart', function (e) { 
 
\t if(e.type==='click'){}else{ 
 
\t \t $('footer').addClass('touched'); 
 
\t } \t 
 
}).on('blur', function() { 
 
\t \t $('.touched').removeClass('touched'); 
 
});
footer{background:blue;display:block;height:50px;} 
 
footer.touched{background:red}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<input type="text"> 
 
<input type="text"> 
 
<footer>footer</footer>

+0

? –

+0

これは特にtocuheventのためのものです – DCdaz

+0

まあ、あなたは 'ぼろぼろ'を使っています。ぼかしとフォーカスは、タッチデバイスでは別々に処理されます。あなたは本当に何を達成しようとしていますか?私はあなたの問題の原因であると信じているぼかし/フォーカスとタッチイベントをミキシングして一致させています。それぞれのプラットフォームは少し違った順序で処理します。この場合、2回目の入力で 'touchstart'イベントが発生するまで' blur 'は発生しません。 –

答えて

0

だから、それが動作し、また、入力フォーカスの間フッターアニメーションのいずれかの痛みを伴うちらつきを解消するために取得する方法を考え出しました。あなたの代わりに `touchstart`クリックでfocus``使用しないのはなぜ

$('input:not(:radio)').on('click touchstart', function (e) { 
 
\t if(e.type==='click'){}else{ 
 
\t \t $('#form-footer').hide(); 
 
\t \t setTimeout(function(){ $('#form-footer').addClass('touched').show(); }, 400); 
 
\t } \t 
 
}).on('blur', function() { \t  
 
\t \t $('.touched').removeClass('touched'); 
 
});

関連する問題