Podczas oczekiwania na odpowiedź z .load(), czy jest jakiś sposób, aby zmienić kursor na zajęty/czekać kursor?Jak zmienić kursor, aby poczekać, używając jQuery .load()
Odpowiedz
Spróbuj:
Aktualizacja do pracy z jQuery 1.8 +
$(document).ajaxStart(function() {
$(document.body).css({'cursor' : 'wait'});
}).ajaxStop(function() {
$(document.body).css({'cursor' : 'default'});
});
zmian kursor na dowolnym ajax początku i na końcu. Obejmuje to .load()
.
Wypróbuj różne style kursora tutaj:
Zmień kod CSS ciała na cursor: progress
.
Aby to zrobić, po prostu utwórz z klasą CSS "czekanie", a następnie dodaj/usuń klasę z ciała.
CSS:
.waiting {
cursor: progress;
}
Następnie w JS:
$('body').addClass('waiting');
można go usunąć później z .removeClass
.
Można to wykorzystać:
$('body').css('cursor', 'progress');
przed rozpoczęciem załadunku i raz całkowita zmiana kursor na auto
Mam nadzieję, że to pomoże
$("body").css('cursor','wait');
//or
$("body").css('cursor','progress');
pozdrowienia
Próbowałem różnych metod znalazłem tu i inne miejsca i postanowił jest zbyt wiele błędów w różnych przeglądarkach (lub nawet konfiguracjach, takich jak użytkownicy RDP/VNC/Terminal) przy zmianie kursora myszy. Zamiast więc skończyło się z tym:
w mojej aplikacji Init odpala po dokumencie gotowy:
// Make working follow the mouse
var working = $('#Working');
$(document).mousemove(function(e) {
working.css({
left: e.pageX + 20,
top: e.pageY
});
});
// Show working while AJAX requests are in progress
$(document).ajaxStart(function() {
working.show();
}).ajaxStop(function() {
working.hide();
});
a pod koniec mojego HTML, tylko wewnątrz ciała mam:
<div id="Working" style="position: absolute; z-index: 5000;"><img src="Images/loading.gif" alt="Working..." /></div>
Działa bardzo podobnie do kursora myszy "ładowanie aplikacji" w systemie Windows, gdzie nadal znajduje się normalny kursor, ale można również powiedzieć, że coś się dzieje. Jest to idealne rozwiązanie w moim przypadku, ponieważ chcę, aby użytkownik czuł, że wciąż może robić inne rzeczy w oczekiwaniu, ponieważ moja aplikacja obsługuje do tej pory całkiem dobrze (wczesne etapy testowania).
Mój plik loading.gif to tylko typowe kołowrotek, około 16x16 pikseli, więc nie jest to zbyt denerwujące, ale oczywiste.
Musiałem poprawić powyższą wymowną odpowiedź, aby pracować z jQuery> 1.8.
$(document).ajaxStart(function() {
$(document.body).css({ 'cursor': 'wait' })
});
$(document).ajaxComplete(function() {
$(document.body).css({ 'cursor': 'default' })
});
Nadal można zastąpić te '$ (document.body)' just '$ ('body')', aby było krótsze. Lub '$ (this.body)' jeśli nie chcesz używać ciągu^_^ – Sygmoral
nie podoba mi się rozwiązanie, które po prostu dodać właściwość css do znacznika body: to nie zadziała, jeśli masz już kursor przypisana do elementu. Podobnie jak ja używam cursor: pointer;
na wszystkich moich znacznikach zakotwiczonych. Więc wpadłem na to rozwiązanie:
utworzyć klasę CSS, aby uniknąć nadpisywania aktualnego kursora (aby móc wrócić do normalnego później)
.cursor-wait {
cursor: wait !important;
}
Tworzenie funkcji dodawania i usuwania kursor
cursor_wait = function()
{
// switch to cursor wait for the current element over
var elements = $(':hover');
if (elements.length)
{
// get the last element which is the one on top
elements.last().addClass('cursor-wait');
}
// use .off() and a unique event name to avoid duplicates
$('html').
off('mouseover.cursorwait').
on('mouseover.cursorwait', function(e)
{
// switch to cursor wait for all elements you'll be over
$(e.target).addClass('cursor-wait');
});
}
remove_cursor_wait = function()
{
$('html').off('mouseover.cursorwait'); // remove event handler
$('.cursor-wait').removeClass('cursor-wait'); // get back to default
}
Następnie utworzyć funkcję aJAX (nie używam takich imprez ajaxStart lub ajaxStop bo nie chcą używać kursora czekać ze wszystkimi moje wezwanie ajax)
get_results = function(){
cursor_wait();
$.ajax({
type: "POST",
url: "myfile.php",
data: { var : something },
success: function(data)
{
remove_cursor_wait();
}
});
}
nie jestem bardzo obeznany z obciążeniem jQuery(), ale myślę, że to będzie coś takiego:
$('button').click(function()
{
cursor_wait();
$('#div1').load('test.txt', function(responseTxt, statusTxt, xhr)
{
if (statusTxt == "success")
{ remove_cursor_wait(); }
});
});
Nadzieję, że to pomaga!
Dzięki, to jest dobre rozwiązanie. Migotanie nad elementem takim jak wejście powoduje migotanie. Jakiś pomysł na naprawę? – ykay
Spróbuj:
$(document).ajaxStart(function() {
$('body').css('cursor', 'wait');
}).ajaxStop(function() {
$('body').css('cursor', 'auto');
});
Jak jQuery 1.8, .ajaxStop() i .ajaxComplete() metody powinny być przyłączone tylko do dokumentu.
Wymiana między .ajaxStop() z .ajaxComplete() przyniosły mi zadowalające wyniki.
- 1. WPF Trigger, aby zmienić kursor
- 2. Jak zmienić domyślny kursor w mapach ulotek?
- 3. JQuery Script Load Timing
- 4. jquery: usunąć kursor wskaźnika?
- 5. jquery focus on load
- 6. Jak zmienić kursor myszy w języku Java?
- 7. Jquery: bind load + change while
- 8. Wywołanie funkcji po .load (jQuery)
- 9. Jak dodać nakładkę DIV, aby pokryć istniejący DIV (używając JQuery)?
- 10. Z WatiN, chciałbym poczekać na wydarzenie jQuery
- 11. Jak ukryć kursor myszy za pomocą jquery
- 12. zmienić sposób SlidingDrawer odpowiada trackball lub kursor
- 13. Jak poczekać aż Location Manager, aby uzyskać wysoki dokładnych danych
- 14. marionetka, jak zrobić marionetkę, aby poczekać kilka sekund
- 15. jQuery .load() Poczekaj, aż zawartość zostanie załadowana.
- 16. Zmienić kursor myszy na całą stronę?
- 17. Jak napisać wyzwalacz WPF, aby zmienić kursor na hover bloku tekstu
- 18. Najlepszy sposób przekazać parametry do .load jQuery()
- 19. Problem jQuery .load() we wszystkich wersjach IE
- 20. Zatrzymaj jQuery .load odpowiedzi przed buforowane
- 21. Jak wybrać element ładowany za pomocą funkcji load() jQuery?
- 22. zachowaj klasy elementów jquery-ui po. Jquery .load()
- 23. Jak mogę zmienić pokrętło kursor koloru androida EditText (nie kolor kursor pokrętło)
- 24. jQuery .load() Jak zapobiec podwójnemu ładowaniu z dwukrotnego kliknięcia
- 25. Jak mogę zmienić kursor (image) w całym systemie operacyjnym Windows
- 26. Jak zmienić programowo kursor Edittext Colour w systemie Android?
- 27. Jak ukryć lub zmienić kursor myszy w nowych przeglądarkach?
- 28. HTML5 lub JQuery Pełnoekranowy kursor krzyża
- 29. UITextField Ustaw kursor, aby rozpocząć pozycję tekstową
- 30. kursor oczekiwania jquery podczas ładowania html w div
Zastanowiłem się nad dodaniem tego do moich aplikacji w zeszłym tygodniu. Prosty. Czysty. – iambriansreed
Myślę, że to może być Mona Lisa ze świata kodowania! Z pewnością jest to po tych ohydnych rozwiązaniach, które próbowałem! Niezła robota! – Jimmy
@JimBarton Dzięki! Jestem dumny z napiętego kodu. – iambriansreed