2011-05-14 13 views
6

Estoy usando jQuery para un efecto deslizante en el botón clic. Mi código es:Jquery Slider Efecto

$(document).ready(function() { 

    $("#mybutton").click(function() { 
     $("#slidemarginleft").hide("slide", { direction: "down" }, 1000); 
}); 
}); 

Cuando hago clic en el botón, se produce un error de JavaScript:

f.easing[e.animatedProperties[this.prop]] is not a function 
+1

¿Cómo puede Alguien responde si no ha dicho qué control deslizante está usando y en qué navegador aparece. ¿Lo ha probado en diferentes navegadores para ver si es específico del navegador? –

Respuesta

13

El fragmento de código que proporcionó es directamente de la jQuery UI documentation: (D'oh)

$("div").click(function() { 
    $(this).hide("slide", { direction: "down" }, 1000); 
}); 

acabo de recibir este error y el problema fue que la escritura de jQuery UI no estaba cargada . jQuery UI es necesario para las animaciones de aceleración.

Trate de añadir esto a ver si se resuelve el problema:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js"></script>  
+0

Sí, solo incluye el jquery-ui y soluciona el problema. muchas gracias – Silentbang

+0

Funciona para cualquier versión también. Tenía 1.7.1. ¡Gracias! –

0

creo que el problema es el segundo argumento está de paso con el método de ocultar. De la documentación de jQuery en Hide(), dice:

duration Una cadena o número que determina cuánto tiempo se ejecutará la animación.
easing Una cadena que indica qué función de relajación utilizar para la transición.
devolución de llamada Una función para llamar una vez que la animación está completa

Su segundo argumento es un objeto javascript, no una cadena. Está intentando encontrar una función de relajación llamada {direction: "down"} y no tener suerte. Las únicas implementaciones de facilitación en la biblioteca jQuery son las predeterminadas, llamadas swing, y una que progresa a un ritmo constante, llamada lineal. También tiene lo que parece una duración como el tercer parámetro y debería ser el primero.

También me pregunto por qué está utilizando el método hide() para hacer una diapositiva jQuery en lugar del método slideToggle() o simplemente slideDown() o slideUp() según sus necesidades.

0

Suponiendo que usted está tratando de lograr el efecto de ocultar un elemento con un movimiento de "deslizarse hacia abajo", tal vez probar algo como esto ...

Demostración: http://jsfiddle.net/wdm954/Frumm/3/

$('#button').click(function() { 
    var h = $('#slide').height(); 
    $('#slide').animate({ height: 0, marginTop: h+"px" }, 1000, function() { 
     $(this).hide(); 
    }); 
}); 
0

Este error también podría ser causada por un valor no válido efecto. Por ejemplo: $(this).hide("slid", {}, 1000); Los valores de efecto válidos son: 'blind', 'clip', 'drop', 'explode', 'fold', 'puff', 'slide', 'scale', 'size', 'pulsate'.

See here.

0

Otra razón puede ser si uno tenía un plugin jQuery que contenía su propio plug-in de aceleración de compacidad, de manera efectiva reemplazando las últimas funciones de relajación.

Uno puede buscar esto en todos los archivos js para localizar un 'delincuente' como:

Query.extend({easing:{ 
Cuestiones relacionadas