2015-03-02 70 views
1

我試圖通過簡化我的Slick Slider腳本來避免過多的代碼。我試圖運行一個函數來設置一個布爾參數,但我顯然在這裏丟失了一些東西。我們的目標是如果.content-gallery有一個.casestudy類,在我的CMS中是一個不同的內容類型,則將淡入淡出參數從true更改爲false。如何在函數參數表上運行jQuery if語句?

謝謝!

$(window).load(function() { 
var galleryStyle = true; 
var $gallerySlider = $("div.content-gallery-wrapper .content-gallery"),function(){ 
    if ($gallerySlider.hasClass("casestudy")) { 
    var galleryStyle = false; 
    } else {} 
}; 

$gallerySlider.each(function(){ 
    $(this).slick({ 
     centerMode: true, 
     centerPadding: '0', 
     slidesToShow: 1, 
     slidesToScroll: 1, 
     // dots: true, 
     prevArrow: '.arrow.left', 
     nextArrow: '.arrow.right', 
     fade: galleryStyle 
    }); 
}); 

$('.loading').removeClass('loading'); 
}); 

使用下面的答案之一,並將if語句移動到initilization函數似乎照顧它。

$(window).load(function() { 
var galleryStyle = true; 
var $gallerySlider = $("div.content-gallery-wrapper .content-gallery"); 

$gallerySlider.each(function(){ 
    if ($(this).hasClass("casestudy")) { 
     galleryStyle = false; 
    } 
$(this).slick({ 
     centerMode: true, 
     centerPadding: '0', 
     slidesToShow: 1, 
     slidesToScroll: 1, 
     // dots: true, 
     prevArrow: '.arrow.left', 
     nextArrow: '.arrow.right', 
     fade: galleryStyle 
    }); 
}); 

$('.loading').removeClass('loading'); 
}); 
+1

帶逗號的代碼很奇怪;你期望做什麼? (這幾乎肯定不會做任何事情,但是知道自己的意圖太困難了。) – Pointy 2015-03-02 22:51:54

+0

對不起,我應該澄清一點。我編輯了我的問題。 「淡入」參數控制滑塊是淡入淡出(真)還是幻燈片(假)。我希望所有的畫廊都要淡入淡出:除非他們加入了案例研究畫廊,否則它們會被加入。 – jasonbarone 2015-03-02 23:37:30

回答

1

認爲你想要的認定,「畫廊」元素,然後設置「galleryStyle」標誌代碼。這應該是這樣的:

var $gallerySlider = $("div.content-gallery-wrapper .content-gallery"); 
if ($gallerySlider.hasClass("casestudy")) { 
    galleryStyle = false; 
} 
+0

謝謝,這清除了錯誤,但它看起來像設置爲頁面上的所有滑塊都是false,無論他們是否有案例研究。標誌是否必須在初始化函數的函數中?我假設它至少發現一個casestudy,腳本將該標誌設置爲false,然後所有滑塊都使用fade:false進行初始化。 – jasonbarone 2015-03-02 23:47:13

+0

謝謝你的回答,我最終將if語句移入初始化函數。 – jasonbarone 2015-03-02 23:59:29