如何在$(window).resize函数之外获取window.width()值?

时间:2018-12-21 08:51:49

标签: javascript jquery

我正在寻找一种解决方案,以使const unsigned char a [ something ]; int b; b = (a[0] & 0x0f) << 8; 函数外部的窗口宽度变大。我正在使用滑块,并且要对其$(window).resize属性进行更改。

我希望slidesToShow函数中的width值更改$jq('.autoplay').slick的值。如果宽度小于slidesToShow,则slidesToShow值必须为1000等。

我从this link那里获得了帮助,但是它对我不起作用。

2

2 个答案:

答案 0 :(得分:3)

您可以更好地实现所需的功能,而不必担心可变范围。您可以通过计算slidesToShow事件处理程序中的resize值,然后更新该块中现有Slick滑块实例的slidesToShow属性来实现。像这样:

var $jq = jQuery.noConflict();

$jq(document).on('ready', function() {
  $jq(window).resize(function() {
    var width = $jq(window).width();
    var slidesToShow = /* calculate value based on width here... */ ;
    $slick.slick('slickSetOption', 'slidesToShow', slidesToShow);
  });

  var $slick = $jq('.autoplay').slick({
    slidesToShow: 3,
    slidesToScroll: 1,
    autoplay: true,
    autoplaySpeed: 2000,
    prevArrow: '<div class="slick-prev"><i class="lni-chevron-left"></i></div>',
    nextArrow: '<div class="slick-next"><i class="lni-chevron-right"></i></div>'
  });
});

答案 1 :(得分:0)

您可以在上层函数中声明变量,以便可以在所有内部函数中访问它,如下所示:

    var $jq = jQuery.noConflict();
    $jq(document).on('ready', function() {
        // if you declare a variable here;
        var myVar = 0;
        $jq( window ).resize(function() { 
            var width = $jq( window ).width();
            // then initialize it here;
            myVar = $jq( window ).width();
        });
        $jq('.autoplay').slick({
            slidesToShow: myVar > 30 ? 'yes': 'no', // you can use it here, since it is in the scope
            slidesToScroll: 1,
            autoplay: true,
            autoplaySpeed: 2000,
            prevArrow: '<div class="slick-prev"><i class="lni-chevron-left"></i></div>',
            nextArrow: '<div class="slick-next"><i class="lni-chevron-right"></i></div>'
        });
    });