2011-12-29 10 views
9

Tengo un enlace de anclaje con una clase que identifica que se llama en fancybox. ejemplo:Cómo desvincular fancybox de un selector

<a class="group">some code here</a> 

FancyBox vinculante:

$('.group').fancybox(); 

Si quiero desvincular FancyBox con los elementos seleccionados por $ ('grupo'), ¿cómo debo hacerlo? He intentado removeClass('group') pero no está funcionando.

+0

lo siento por ejemplo, es como Ranoy

+0

Sería posible eliminar cualquier clase con destino a FancyBox del ancla con el fin fancybox no se habilitará en dicho anclaje. El truco es cómo identificar el ancla para usar el método apropiado. ¿Podría aclarar cómo desea eliminar la clase: después de un evento específico o solo en la carga de la página? – JFK

+1

¿Responde esto a esta pregunta? http://stackoverflow.com/questions/3654085/unbinding-fancybox-on-thumbnail-fade – CantGetANick

Respuesta

0

Si desea hacerlo en código de JavaScript, puede seleccionar el objeto de etiqueta de anclaje y eliminar la clase.

Dé un id al elemento y llame al método removeClass

<a id="noFancy" class="group">some code here</a> 

Java Script

$(function(){ 
    $("#noFancy").removeClass("group"); 

}); 

Si tiene acceso a la marcación HTML, ¿por qué no cambiar a la clase a otra cosa, pero con los mismos valores de CSS a continuación, usted no necesita ejecutar el código para eliminar la clase de documentReady

HTML

<a class="groupNormal">I dont want fancybox</a> 

CSS

.groupNormal 
{ 
    // Put the CSS for group class 
} 
+0

eliminando la clase de la etiqueta de anclaje al no funcionar becoz dom recoge todos los elementos antes de cargarla, aunque he eliminado la clase en la que aún se está llamando al ancla en fancybox – Ranoy

+0

Did ¿Quitas la clase antes de enlazar la fancybox? – Shyju

+0

Quité la clase en primer lugar en la carga de la página, incluso en el origen de la página puedo ver que la clase se eliminó, pero todavía carga el cuadro de fantasía – Ranoy

5
$('.group').unbind('click.fb') 
+1

Esto funcionó para mí. ¡Gracias! –

+4

Esto no funcionó para mí – Martin

0

Aquí está la solución que funcionó para mí, sin embargo no lo hace desvincular la fancybox en el sentido de cómo le gustaría hacerlo al interrogador.

En primer lugar, no declara la FancyBox en el nodo, pero se une el nodo de click evento en su lugar:

$(".classOfMiniImage").on("click", window.onImageMiniClicked); 

En el controlador, puede utilizar el código para comprobar las condiciones si es necesario para mostrar la FancyBox o no, y luego mostrarlo con explícita referencia href:

window.onImageMiniClicked = function() { 
    if (<your_condition>) { 
     $.fancybox({ 
      'href': <link_to_full_size_image>, 
      /* other options below */ 
      'transitionIn': 'elastic', 
      'transitionOut': 'elastic', 
      'speedIn': 600, 
      'speedOut': 600, 
      'overlayShow': true 
     }); 
    } 
} 

Además, se puede usar un poco y otro enfoque para desenlazar este controlador de forma manual si no es necesario el FancyBox en estos artículos más:

$(".classOfMiniImage").off("click", window.onImageMiniClicked); 

Espero que ayude a alguien.

1

Puede agregar la clase "nofancybox" para vincular y este vínculo se ignorará