Fancybox 2.1.5与jQuery 3.1.0无法正常工作

时间:2016-08-04 05:11:18

标签: jquery datatables fancybox fancybox-2

不确定究竟是什么造成了这种情况,但似乎“活着”了。选项不起作用。除了使用jQuery 3.1.0和图像打开而不是fancybox打开之外,相同的代码和我的一切。如果我在控制台中手动重新运行我的init命令,则页面上的所有链接都会再次运行:

$(".fancybox-screenshots").fancybox({
    prevEffect      : 'none',
    nextEffect      : 'none'
});

fancybox js中是否有一行需要针对jquery 3进行修改?看看我的代码是如何改变的,并且它在jquery 2.x中工作得很好...看起来好像点击处理程序不再有效,并且没有绑定到正在发生的类。

为了什么值得,我也使用DataTables,因此内容和链接的实际加载如下。在我的数据表中,init是将fancybox图像/链接输出到dom的地方。发生这种情况后,我会初始化FancyBox。当使用jQuery 2.x时,它就像一个魅力:

var ShowScreenshots = function () {

    var loadTable = function() {

        dt = $('#datatable').DataTable({
            //datatables.net stuff which includes loading the images/links for fancybox
        });


        // init the screenshots
        $(".fancybox-screenshots").fancybox({
            type : 'image',
            prevEffect      : 'none',
            nextEffect      : 'none',
            helpers     : {
                title   : { type : 'inside' },
                buttons : { tpl : '<div id="fancybox-buttons"><ul style="width: 203px;"><li><a class="btnPrev" title="Previous" href="javascript:;"></a></li><li><a class="btnPlay" title="Start slideshow" href="javascript:;"></a></li><li><a class="btnNext" title="Next" href="javascript:;"></a></li><li><a class="btnToggle" title="Toggle size" href="javascript:;"></a></li><li><a class="btnCustom" title="Save / Print" href="javascript:;"></a></li><li><a class="btnClose" title="Close" href="javascript:;"></a></li></ul></div>' }
            }
        });

    };


    return {
        //main function to initiate the module
        init: function () {
            loadTable();
        }
    };

}();

jQuery(document).ready(function() {
    ShowScreenshots.init();
});

编辑:

我会在有人提出之前添加...我已经使用了3.x的jquery migrate插件,它没有显示严重的错误或警告。我相信有一个不赞成的警告,但这只是对未来的警告。

0 个答案:

没有答案