Mientras se espera una respuesta de .load(), ¿hay alguna forma de cambiar el cursor al cursor ocupado/de espera?Cómo cambiar el cursor para esperar cuando se usa jQuery .load()
Respuesta
Probar:
actualizado para trabajar con jQuery 1,8 +
$(document).ajaxStart(function() {
$(document.body).css({'cursor' : 'wait'});
}).ajaxStop(function() {
$(document.body).css({'cursor' : 'default'});
});
cambios cursor en cualquier inicio y al final ajax. Eso incluye .load()
.
probar los diferentes estilos de cursor aquí:
Cambie el CSS del cuerpo a cursor: progress
.
Para hacer esto, simplemente haga una clase de "espera" con este CSS, y luego agregue/elimine la clase del cuerpo.
CSS:
.waiting {
cursor: progress;
}
Luego, en sus JS:
$('body').addClass('waiting');
puede eliminarlo posteriormente con .removeClass
.
Puede utilizar esta:
$('body').css('cursor', 'progress');
antes de empezar la carga y el cambio una vez completado el cursor para auto
espero que esto ayude a
$("body").css('cursor','wait');
//or
$("body").css('cursor','progress');
saludos
que probé los diversos métodos que he encontrado aquí y en otros lugares y decidimos hay demasiados errores en varios navegadores (o incluso configuraciones, como los usuarios de RDP/VNC/Terminal) al cambiar el cursor del mouse. Así que en vez terminé con esto:
Dentro de mi código de inicio de aplicaciones que se activa después documento listo:
// 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();
});
Y hacia el final de mi HTML, justo en el interior del cuerpo tengo:
<div id="Working" style="position: absolute; z-index: 5000;"><img src="Images/loading.gif" alt="Working..." /></div>
Funciona muy parecido al cursor de la "carga de aplicaciones" en Windows, donde aún se obtiene el cursor normal, pero también se puede decir que algo está sucediendo. Esto es ideal en mi caso porque quiero que el usuario sienta que todavía puede hacer otras cosas mientras espera, ya que mi aplicación maneja muy bien hasta ahora (primeras etapas de prueba).
Mi archivo carga.gif es simplemente una rueca típica, unos 16x16 píxeles, por lo que no es demasiado molesto, pero obvio.
Tuve que modificar la elocuente respuesta anterior para trabajar con jQuery> 1.8.
$(document).ajaxStart(function() {
$(document.body).css({ 'cursor': 'wait' })
});
$(document).ajaxComplete(function() {
$(document.body).css({ 'cursor': 'default' })
});
Aún podría reemplazar esos '$ (document.body)' con solo '$ ('body')' para acortarlo. O '$ (this.body)' si no quieres usar una cadena^_^ – Sygmoral
no me gusta la solución que sólo tiene que añadir la propiedad CSS para la etiqueta de cuerpo: no va a funcionar si ya tiene un cursor asignado a su elemento. Al igual que yo, uso cursor: pointer;
en todas mis etiquetas de anclaje. Por lo tanto, se me ocurrió con esta solución:
crear una clase CSS para evitar sobrescribir el cursor actual (para poder volver a la normalidad después)
.cursor-wait {
cursor: wait !important;
}
Crear las funciones para agregar y quitar el cursor
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
}
a continuación, cree que su función ajax (no consumo eventos como ajaxStart o ajaxStop porque no quiero usar el cursor de espera con todo mi llamada AJAX)
get_results = function(){
cursor_wait();
$.ajax({
type: "POST",
url: "myfile.php",
data: { var : something },
success: function(data)
{
remove_cursor_wait();
}
});
}
No estoy muy familiarizado con la carga jQuery(), pero supongo que será algo como esto:
$('button').click(function()
{
cursor_wait();
$('#div1').load('test.txt', function(responseTxt, statusTxt, xhr)
{
if (statusTxt == "success")
{ remove_cursor_wait(); }
});
});
espero que ayude!
Gracias, esta es una buena solución. Hay un pequeño parpadeo al pasar sobre un elemento como la entrada. Alguna idea para arreglar? – ykay
Probar:
$(document).ajaxStart(function() {
$('body').css('cursor', 'wait');
}).ajaxStop(function() {
$('body').css('cursor', 'auto');
});
Como de jQuery 1.8, la .ajaxStop() y el .ajaxComplete() métodos sólo deben ser adjunto al documento.
Intercambiando .ajaxStop() con .ajaxComplete() ambos me dieron resultados satisfactorios.
- 1. ¿Cómo se duplica el artículo cuando se usa jquery ordenable?
- 2. ¿Cómo cambiar el cursor del puntero al dedo usando jQuery?
- 3. Codificación cartográfica cuando se usa Ajax? JQuery
- 4. ¿Cómo se usa jQuery (elementArray)?
- 5. cambiar el cursor a ocupado mientras se carga la página
- 6. cambiar el cursor al cargar la página
- 7. cómo animar a jquery load()
- 8. Cómo evitar el FETCH duplicado en T-SQL cuando se usa un cursor?
- 9. dirección de jquery ¿cómo se usa?
- 10. Cómo cambiar el cursor a dejar de pagar la carga
- 11. ¿Cómo se usa `to_sql` en AREL cuando se usa` average() `?
- 12. ¿Cómo cambiar el valor de identificación cuando se usa Html.DropDownListFor helper en asp.net mvc 2.0?
- 13. JQuery $ (documento) .ready ajax load
- 14. Cómo detectar el error en el método load() de jQuery
- 15. Cambiar el puntero del mouse cuando se llama ajax
- 16. jquery focus on load
- 17. jquery fadeout, load, fadein
- 18. ¿Cómo puedo obtener el elemento en el que está el cursor con Javascript, cuando se usa contentEditable?
- 19. JQuery Script Load Timing
- 20. ¿Cómo se usa ZeroClipboard en jQuery?
- 21. jquery cómo cambiar solo un elemento principal al colocar el cursor sobre el elemento
- 22. jQuery iframe load() event?
- 23. ¿Por qué se abandona el sbt cuando se usa pescado?
- 24. Anulando jQuery(). Load()
- 25. Esperar el cursor sobre toda la página html
- 26. Congelador cuando cargo tinyMCE a través de jQuery .load()
- 27. ¿Cómo cambiar el texto de advertencia cuando se usa patrón en la entrada?
- 28. jQuery evento cuando se crea el elemento
- 29. ¿Cuándo/por qué prefijar variables con "$" cuando se usa jQuery?
- 30. Cómo deshabilitar Javascript cuando se usa Selenium?
Pensé en agregar esto a mis aplicaciones la semana pasada. Sencillo. Limpiar. – iambriansreed
¡Creo que esta podría ser la Mona Lisa del mundo de la codificación! Ciertamente se siente como después de las espantosas soluciones que he estado intentando! Buen trabajo hermano! – Jimmy
@JimBarton ¡Gracias! Me enorgullezco de tener un código apretado. – iambriansreed