2010-04-05 9 views
6

¿Alguien sabe por qué .hide("normal") no parece estar funcionando en jQuery 1.4.2? ¿Es un error, ha sido eliminado o estoy loco? He logrado duplicar esto usando varios escenarios diferentes. Intenta esto:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.0/jquery-ui.min.js"></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("button").click(function() { 
      $("div.test").hide("normal"); 
     }); 
    }); 

</script> 
</head> 

<body> 
    <div class="test">Hello this is a test</div> 
    <button>Click</button> 
</body> 
</html> 
+5

Dado que no está roto, supongo que eso significa que estás loco. ¡Malditos esos condicionales 'else'! : O: P – Matt

+0

@Matt - ¡No estoy loco, te lo digo! :) – karim79

+0

@everyone - Lamento no haber incluido * toda * la información relevante en el marcado, realmente nunca sospeché que jQuery UI pudiera tener algo que ver con eso. – karim79

Respuesta

15

El problema es que el selector de clase: .text = class="test"

que he hecho que más de 100 veces, con las mismas palabras :)

Cambiar a: $("div.test").hide("normal"); de un arreglo.


Actualización: Parece jQuery UI 1.8 es la cuestión, rompiendo "normal" como velocidad de la animación.

This is from the jQuery UI forums:

Gracias por señalarlo. Normal nunca fue una opción de velocidad válida, era un mito de documentación inválida (solía existir también en jQuery core docs). La única razón por la que funcionó es porque los valores no válidos vuelven a la velocidad predeterminada.

por lo que parece, al menos a este miembro del equipo de jQuery UI no cree que esto es un cambio importante, que fuertemente de acuerdo y espero que esto se invierte en la próxima actualización.

+1

¡no eres solo uno! :) – confiq

+0

lo siento - entendido falso :) +1 – ahmet2106

+0

@ ahmet2106 - Lo siento, karim conoce bien a jQuery, así que le estaba respondiendo directamente ... actualizado en caso de que otros lo encuentren :) –

1

¿Es "normal" incluso una opción para la velocidad? Pensé que lento, rápido y un tiempo en milisegundos eran las únicas opciones.

http://api.jquery.com/hide/

+0

"normal" se encuentra actualmente en algunos ejemplos en la documentación 'show'. Además, he estado usándolo en varios lugares en producción durante los últimos dos años. Solo estoy tratando de averiguar si debo esperar una solución o hacer la refactorización necesaria. Esto solo se hizo evidente cuando decidí actualizar a la última jQuery (desde 1.4.1) y jQuery UI. – karim79

+0

¿Por qué incluso usaría 'normal' en primer lugar? – ScottE

6

Work's for me ... que está envolviendo:

$("button").click(function() { 
    $("div.test").hide("normal"); 
}); 

en $(document).ready() no?

+0

Sí, lo soy. No lo entiendo Hay al menos seis instancias en mi sitio donde se usa, y ninguna de ellas funciona. Si cambio a 'hide (" fast ")' or 'hide (" slow ")' funciona bien. – karim79

+0

>. <¿Qué navegador? – Matt

+0

Hasta el momento, Chrome, Safari y Firefox – karim79

3

Gracias por todas las respuestas. En mi pregunta, incluí lo que pensé que era el marcado relevante. Sin embargo, de forma inesperada y bastante inquietante, es la inclusión de la última jQuery UI (1.8.0) que está rompiendo "normal". Ejecute el siguiente, no funcionará. Comente la inclusión de jQuery UI, y he aquí, ¡funcionará!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.0/jquery-ui.min.js"></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("button").click(function() { 
      $("div.test").hide("normal"); 
     }); 
    }); 

</script> 
</head> 

<body> 
    <div class="test">Hello this is a test</div> 
    <button>Click</button> 
</body> 
</html> 
+0

, por lo que UI estaba sobrescribiendo .hide? Entonces, ¿es Jquery? ¿Lo informaste? – confiq

+0

Estoy a punto. Esto casi me hizo romper la producción :( – karim79

+0

@ karim79 - Hay algunas entradas abiertas en esto, aunque todavía no respondidas: http://dev.jqueryui.com/ticket/5456 –

Cuestiones relacionadas