javascript - 通过ajax调用更新页面后重新启动flickity

标签 javascript flickity

我正在尝试使用 metafizzy 的 flickity。效果很好,但在更新页面后,新加载的图库将无法运行。 ajax加载后如何重新初始化flickity? 我使用 js-flickity 类来初始化脚本。

<div class="gallery js-flickity">
...
</div>

最佳答案

我知道有点晚了,但我还是会发布它,因为它可能会对其他人有所帮助。

还没有尝试过上面提交的调整大小的解决方案,但我是这样做的。

将元素附加到容器后,查找 js-flickity 元素,查看是否可以使用 data 方法获取对象数据,以及它是否未定义在该元素上初始化 flickity。

var nodeList = document.querySelectorAll('.js-flickity');

for (var i = 0, t = nodeList.length; i < t; i++) {
    var flkty = Flickity.data(nodeList[i]);
    if (!flkty) {
        new Flickity(nodeList[i]);
    }
}

更新:

注意到仍然很少有人在看这个问题。所以这是一个更新的解决方案,它还支持在数据属性(可选)中定义的 flickity 轮播选项。

var nodeList = document.querySelectorAll('.js-flickity');

for (var i = 0, t = nodeList.length; i < t; i++) {
    var flkty = Flickity.data(nodeList[i]);
    if (!flkty) {
        // Check if element had flickity options specified in data attribute.
        var flktyData = nodeList[i].getAttribute('data-flickity');
        if (flktyData) {
            var flktyOptions = JSON.parse(flktyData);
            new Flickity(nodeList[i], flktyOptions);
        } else {
            new Flickity(nodeList[i]);
        }
    }
}

关于javascript - 通过ajax调用更新页面后重新启动flickity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31164655/

相关文章:

JavaScript:使用数字和最大长度验证手机号码

javascript - 使用 baconjs 输出项目列表

jquery - Flickity: is-selected 类无法查看图片

javascript - 使用 flickity slider 向图像添加和删除灰度效果

javascript - 为什么 Angular 中没有加载 flickity css?

javascript - 单击按钮时 Jquery/Animation 重新加载问题

javascript - 在 asp.net 中输入键作为 Tab 并将焦点移动到下一个控件

javascript - 使用 JavaScript 读取本地 JSON 文件(无网络服务器)

javascript - Flickity 轮播图片未完全加载

html - Flickity 图像不会调整大小,它们会被截断