2017-03-22 3 views
0

Das Problem, das ich hier habe, ist mit touchstart. Was passiert, anstatt sich wie ein Klick zu verhalten, wenn Sie in eine andere fokussierte Eingabe klicken, wird die gewünschte Klasse zur Fußzeile hinzugefügt. Touchstart nicht. Stattdessen scheint es zu schnell für die Unschärfe zu wirken und die Unschärfe passiert danach.jQuery Touchstart funktioniert nicht für Unschärfe

Wer weiß, wie man das so stoppt touchstart verhält sich wie klicken?

$('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

Warum Sie nicht 'verwenden focus' statt' klicken touchstart'? –

+0

Dies ist speziell für ein tocuhevent – DCdaz

+0

Nun, Sie verwenden "Unschärfe". Unschärfe und Fokus werden auf Touch-Geräten unterschiedlich gehandhabt. Was versuchst du wirklich zu erreichen? Du mischt und kombinierst Unschärfe/Fokus und berührst Ereignisse, von denen ich glaube, dass sie die Ursache deines Problems sind. Jede Plattform behandelt die Reihenfolge ein wenig anders, und in diesem Fall glaube ich nicht, dass "Unschärfe" ausgelöst wird, bis nach dem "Touchstart" -Ereignis am zweiten Eingang. –

Antwort

0

So eine Art und Weise es jedes schmerzhaftes Flackern der Fußzeile belebenden zur Arbeit zu kommen herausgefunden und auch zwischen dem Eingabefokus zu beseitigen.

$('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'); 
 
});

Verwandte Themen