Hola .. necesito un consejo de nuevo :)jQuery: fireing método público de un plugin después de los cambios de la segunda complemento
Estoy trabajando en un proyecto con una cartera filtrable [basada en este enlace plugin: www.gethifi.com/blog/a-jquery-plugin-to-create-an-interactive-filterable-portfolio-like-ours.
los elementos de la cartera se muestran en un control deslizante horizontal que está agregando áreas de desplazamiento (puntos calientes) en el lado izquierdo y derecho de la ventana del navegador.
aquí viene mi problema:
el ancho de la barra deslizante se calcula en el plug-in de smoothdivscroller www.smoothdivscroll.com. pero cuando cambio el contenido del control deslizante a través del filtro de navegación, el ancho total del control deslizante cambia, pero el complemento smoothdivscroller no se da cuenta.
puedo tener un simplificada example en jsFiddle para usted y usted puede experimentar todo el problema aquí kuemmel-schnur.de/projekte: cuando se muestran todos los proyectos (Alle) y se desplaza hacia la derecha y luego cambiar a la categoría "Lehrprojekte" que ganó' Ver proyectos porque están en el extremo izquierdo y no se vuelve a calcular el ancho total del contenedor.
para arreglar esto tengo tres ideas en las que necesito ayuda seria.
1) el enchufe en smoothdivscroll ofrece un método público para volver a calcular el ancho del contenedor como
$("#makeMeScrollable").smoothDivScroll("recalculateScrollableArea");
la que necesito para disparar cada vez que después se hace clic portfolio-list a
. y tengo que combinar esto con el método en el que el cursor cambia automáticamente al primer elemento del contenido actual
$("#makeMeScrollable").smoothDivScroll("moveToElement", "first");
2) Mi segunda idea - porque yo no sé si o cómo 1) funciona - es compruebe si la URL cambia y luego inicie el recálculo. el filtro usa un hash para abordar el contenido. así que pensé que podría leer la URL y cada vez que la parte directamente después del hash cambia podría disparar el método.
3) que podía unir el plug-in filtrable a la smoothDivScroll plug-in con algo como (cuidado con código completamente equivocado :)
$('#portfolio-list').filterable();
$('#portfolio-filter a').click(function(){
$('#makeMeScrollable').smoothDivScroll("moveToElement", "first")("recalculateScrollableArea");
});
así .. ¿qué te parece? de nuevo el enlace jsfiddle: jsfiddle.net/tobiasmay/QudtF/
gracias, tobi.
ps. habría configurado correctamente los enlaces, pero necesito 1 punto de reputación más para publicar más de 1 enlace;)
es mi pregunta es demasiado larga o demasiado complicada? luego lo desmontaré. – tobiasmay
No estoy seguro de que jsfiddle esté actualizado - 'TypeError no detectado: Objeto #
De hecho, el enlace del recurso a filterable.js (y jquery.ba-hashchange.min.js) no es válido. – JimmiTh