jQuery窗口调整大小只触发一次

时间:2016-09-06 15:05:47

标签: javascript jquery css tabs slider

我试图在多个jquery选项卡中包含一个滑块,但由于滑块需要宽度和高度才能正确显示,因此我需要在选项卡更改时调用window resize触发器。此代码有效,但只有一次:

jQuery(".vc_tta .vc_tta-tab, .vc_tta .vc_tta-panel-title").click(function() {
    jQuery(window).trigger("resize");
});

我把它放在我的文档。(就绪)功能之外,但它仍然只能运行一次。

这是我的完整脚本:

jQuery(document).ready(function($){
    $('.slider-<?= $name ?>').slick({
        slidesToShow: 1,
        centerMode: true,
        centerPadding: '200px',
        arrows: true,
        focusOnSelect: true,
        responsive: [
            {
                breakpoint: 800,
                settings: {
                    centerMode: false
                }
            }
        ]
    });
});

jQuery(".vc_tta .vc_tta-tab, .vc_tta .vc_tta-panel-title").click(function() {
    jQuery(window).trigger("resize");
});

我无法完全复制,因为我在WordPress中使用Visual Composer,但这是同一个问题:https://jsfiddle.net/keithpetrillo/d9jrgs80/

1 个答案:

答案 0 :(得分:1)

无需将功能移到document.ready之外。尝试委派文档中的事件:

jQuery(document).on('click', ".vc_tta .vc_tta-tab, .vc_tta .vc_tta-panel-title", function() {
    jQuery(window).trigger("resize");
});

这适用于在页面加载时不存在或隐藏的元素。