2
  1. 查看我的 jsFiddle

  2. 将 HTML 预览调整为小宽度,并查看幻灯片的大小是否正确调整

  3. 将 jQuery 从 1.9.1 更改为 1.10.1(在左窗格中)并单击 RUN

  4. 将 HTML 预览调整为小宽度或大宽度

  5. 打开控制台,看到错误:Object [object Object] has no method 'bjqs'

我无法弄清楚 bjqs 插件是如何导致 1.10.1 出现此问题的。

插件是否有一些东西阻止它在 resize 函数中第二次调用它?

JavaScript 包含在这里,但上面链接的 jsFiddle 将是一个更好的查看它的地方。

我使用的插件是:http ://www.basic-slider.com/

$(function () {

    $(window).resize(function () {
        if (this.resizeTO) clearTimeout(this.resizeTO);
        this.resizeTO = setTimeout(function () {
            slideShow(); // re-init on resize stop
        }, 500);
    });

    function slideShow() {
        $('.bjqs-controls, .bjqs-markers').remove();
        console.log($(window).width());

        var ss_width;
        var ss_height;

        if ($(window).width() >= 600) {
            // Desktop
            ss_width = 300;
            ss_height = 200;
        } else if ($(window).width() < 600) {
            // Tablet
            ss_width = 150;
            ss_height = 150;
        }

        // Load content slideshow
        $('#banner-slide').bjqs({
            nexttext: 'Next',
            prevtext: 'Prev',
            showmarkers: true,
            centermarkers: true, // horizontally center markers            
            responsive: false, // enable responsive behaviour
            width: ss_width,
            height: ss_height
        });
    }

    // Init slide show on load
    slideShow();

});
4

1 回答 1

1

所述插件中错误的根本原因是/^\d\.\d+/i.exec(jQuery.fn.jquery))<1.6它使用字母数字排序将字符串“1.10”与“1.6”进行比较,因此“1.6”>“1.10”,因此它包含它自己的版本并且不能正确防止冲突。我建议将此作为错误报告给插件作者,修复它应该是微不足道的。

于 2013-11-13T21:42:48.157 回答