我正在使用jquery插件jquery Flip https://nnattawat.github.io/flip/在我的网页中创建一个卡片翻转系统。该文档指定了一种从元素取消注册翻转事件的方法,我已经成功地使用了该方法。但是,我想在单击按钮时重新注册翻转功能。当我检查元素时,应用了 .flip 类,但悬停事件不再可以翻转卡片。
最佳答案
问题在于代码$("#card").off(".flip");
仅取消注册事件,但不会清除元素上的库设置。
要注册事件,您需要再次重新初始化元素,这就是问题所在,文档中没有关于如何执行此操作的信息(正如您所说)。
但是如果您阅读库的代码,您会发现可以通过清除 flip-model
来做到这一点。数据并欺骗库重新初始化元素。
// Unregister flip
$("#card").off(".flip");
// Register flip again
$("#card").data("flip-model", false);
$("#card").flip({ ... }); // Insert your options
如果您希望元素保留注册的旧选项,您可以在清除它们之前保存它们
// 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:使用 $("#card").removeData("flip-model");
删除数据$("#card").data("flip-model", false);
时会产生视觉错误工作没有问题。
关于javascript - 重新启动 Flip.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43595432/