【问题标题】:lightgallery.js with querySelectorAll带有 querySelectorAll 的 lightgallery.js
【发布时间】:2020-08-24 08:22:47
【问题描述】:

我正在尝试在几个类中使用 querySelectorAll 运行 lightgallery.js 脚本(纯 JS 版本),但无济于事。

这是我正在使用的代码:

var lg = document.querySelectorAll( '.gallery-1, .gallery-2, .gallery-3');
for ( var i = 0; i < lg.length; i++ ) {
    lightGallery( lg[i], {
        selector: '.gallery-item > a:has(img)',
        mode: 'lg-fade',
        preload: 2,
        counter: false,
        download: false
    });
}

我在控制台中收到“lightGallery 未正确启动”错误。之前,我使用的是 jQuery 版本的 lightgallery 脚本,使用 $( '.gallery-1, .gallery-2, .gallery-3' ).lightGallery() 没有问题。

【问题讨论】:

    标签: javascript selectors-api lightgallery


    【解决方案1】:

    罪魁祸首是脚本中selector 选项中使用的:has():has() 是一个 jQuery 扩展,不是 CSS 规范的一部分,因此不能在纯 JS 脚本中使用。

    更新:

    这是我现在使用的代码:

    var lg = document.querySelectorAll( '.gallery-1, .gallery-2, .gallery-3');
    for ( var i = 0; i < lg.length; i++ ) {
        lightGallery( lg[i], {
            selector: '.gallery-item > a[href$=".jpg"], .gallery-item > a[href$=".jpeg"], .gallery-item > a[href$=".png"], .gallery-item > a[href$=".gif"]',
            mode: 'lg-fade',
            preload: 2,
            counter: false,
            download: false
        });
    }
    

    【讨论】:

    • 那么解决问题的代码是什么?如果您解决了问题,最好在您的答案中发布相关代码。这样其他人可能会觉得它有帮助:)
    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多