Mam problem z wydarzeniem, na którym się właśnie zorientowałem. Wygląda na to, że fokus uruchamia się po przełączeniu na inną kartę przeglądarki, a następnie z powrotem. Wolałbym, żeby tak się nie stało; Czy to możliwe?Zmiana zakładek przeglądarki powoduje niepożądane wywołanie fokusu, szczególnie w przeglądarce Google Chrome
Nigdy nie zdawałem sobie z tego sprawy aż do dzisiaj. Oto mały demo: http://jsfiddle.net/MJ6qb/1/
var times = 0;
$('input').on('focus', function() {
times ++;
$(this).after('<br>Focused '+times+' times');
});
Aby odtworzyć: Skupienie na wejściu, a następnie przełączyć zakładki przeglądarki, a następnie powrócić. Po przełączeniu z powrotem do karty wszystkie przeglądarki wydają się uruchamiać fokus i Google Chrome 19 uruchamia go dwukrotnie:!
Idealnie, funkcja nie powinna działać podczas przełączania kart przeglądarki w ogóle, ale tylko po kliknięciu przez użytkownika lub Tab, ale teraz, że jestem świadomy kwestii Chrome jestem trochę bardziej zaniepokojony, bo to wynikająca w dodatkowych, niechcianych żądaniach AJAX w mojej prawdziwej aplikacji (służy do pobierania wyników autouzupełniania, który musi być aktualny, ale nie tak bardzo, że chcę użyć zdarzenia keyup).
To nie wydaje się być związane z jQuery (testowałem z javascriptem wanilii), ale mogę użyć jQuery do rozwiązania. Czy mogę coś z tym zrobić? Wiem, że mogę używać jQuery's one()
, ale chcę, aby funkcja działała więcej niż jeden raz.
Nieco niepowiązanych, ale może być w stanie wykryć, kiedy zakładka przeglądarki jest skupiona lub rozmyta i ove rride domyślne zachowanie jak w [this] (http://stackoverflow.com/a/6184276/1028949). Podwójny pożar Chrome to [znany błąd] (http://code.google.com/p/chromium/issues/detail?id=124583) z tego, co potrafię powiedzieć. – Quantastical
Ach, dzięki, nie zdawałem sobie sprawy, że to znany błąd, ale znalazłem go podczas testowania kodu w Chrome tuż przed opublikowaniem, aby upewnić się, że nie jest to rzecz FF (w której się rozwijam). Czuję, że poddaję się i "puszczam", ale to naprawdę denerwujące. Zobaczę, czy mogę coś zrobić z kodem w tej odpowiedzi. –
Zachowanie, którego doświadczasz, jest oczekiwane. Kiedy wyjdziesz z tej zakładki, nie skupiasz się na tym polu, a kiedy wrócisz, skupiasz go ponownie. To samo dotyczy pozostawiania do innej aplikacji. Niestety, nie mogę wymyślić sposobu na obejście tego problemu. – Quantastical