微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有什么方法可以用类而不是 data-fancybox 属性触发fancybox 3?

如何解决有什么方法可以用类而不是 data-fancybox 属性触发fancybox 3?

我有动态添加的图像链接(Ajax),它只包含一个特定的类,我想让它们与 fancybox 3 一起使用。那么,有没有办法用一个类而不是数据来触发fancybox 3-花式盒子属性?我试图指定选择器,但没有成功。

另一种解决方案是使用 jQuery 添加属性,但由于它是动态加载的,因此无法使用此方法

呈现的 HTML

<a href="IMAGE_URL" class="thickBox" >
    <img src="THUMBNAIL_IMG" />
</a>

JS

jQuery(document).ready(function($) {                
    $.fancybox({
        type : 'image',selector : '.thickBox'
    });
    $('.thickBox').attr('data-fancybox');
});

我寻找了一种解决方案,但我还没有找到,所以我被卡住了。

解决方法

好的,多亏了这个CODEPEN,我终于找到了有效的解决方案。

jQuery(document).ready(function($) {   
    $().fancybox({
        selector : '.thickbox'
    });
});

这使得 Facybox 3 只使用类名,因此无需使用 data-fancybox 属性。

顺便说一句,我没有提到它,但我的目的是替换一些 WP 插件使用的原生 Thickbox 灯箱(在我的例子中是 Activity Plus Reloaded for BuddyPress)在 wordPress 前端。

这是我在前端禁用 Thickbox 并将 Fancybox 添加到 WordPress 而无需使用插件的完整 PHP 代码段。

<?php

// DISABLE THICKBOX LIGHTBOX FRONTEND

function wpse71503_init() {
    if (!is_admin()) {
        wp_deregister_style('thickbox');
        wp_deregister_script('thickbox');
    }
}
add_action('init','wpse71503_init');

// ADD FANCYBOX LIGHTBOX

function fancy_enqueue_scripts() {
    if (!is_admin()) {
        wp_enqueue_script( 'fancybox-script','https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.js',array(),'',true );
    }
}
add_action( 'wp_enqueue_scripts','fancy_enqueue_scripts' );

function fancy_CSS_callback() {
    if (!is_admin()) {
        wp_enqueue_style( 'fancybox-style','https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.css' );
        ?>
        <script type="text/javascript">
            jQuery(document).ready(function($) {                
                $().fancybox({
                    selector : '.thickbox,.fancybox'
                }); 
            }); 
        </script>
        <?php
    }   
};
add_action( 'wp_footer','fancy_CSS_callback' );

?>

希望这可以帮助某人。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。