2017-04-24 2 views
0

J'utilise le plugin jquery jquery flip https://nnattawat.github.io/flip/ pour créer un système de retournement de carte dans ma page Web. La documentation spécifie un moyen de désenregistrer l'événement flip de l'élément, que j'ai travaillé avec succès. Je veux réenregistrer la capacité de retournement quand un bouton est cliqué, cependant. Lorsque j'inspecte l'élément, la classe .flip est appliquée, mais l'événement de survol ne fonctionne plus pour retourner la carte.Réinitialiser Flip.js

Répondre

1

Le problème est que le code $("#card").off(".flip"); annule seulement les événements, mais n'efface pas les paramètres de la bibliothèque sur l'élément.

Pour enregistrer les événements, vous devez réinitialiser l'élément, et voici le problème, il n'y a pas d'informations sur la documentation sur la façon de le faire (comme vous l'avez dit). Mais si vous lisez le code de la bibliothèque, vous verrez que vous pouvez le faire en effaçant les données flip-model et en trompant la bibliothèque pour réinitialiser l'élément.

// Unregister flip 
$("#card").off(".flip"); 

// Register flip again 
$("#card").data("flip-model", false); 
$("#card").flip({ ... }); // Insert your options 

Si vous voulez que l'élément de garder les anciennes options registre, vous pouvez les enregistrer avant de les effacer

// Unregister flip 
$("#card").off(".flip"); 

// Register flip with old settings 
var options = $("#card").data("flip-model").setting; 
$("#card").data("flip-model", false); 
$("#card").flip(options); 

PS: La suppression des données à l'aide $("#card").removeData("flip-model"); produit des bugs visuels tandis que $("#card").data("flip-model", false); fonctionne sans problèmes.

+0

Cela a fonctionné à merveille, merci! – waffle