2016-02-17 30 views
0

我在我的網站上使用2個不同的滑塊。其中一個滑塊僅用於上幾頁,等它不使用我的控制檯得到一個錯誤信息頁面:如果在此頁面上使用,只加載flexslider類型

TypeError: flexslider is undefined

我怎麼告訴它忽略,如果這種類型的flexslider的它沒有用在這個特定的頁面上?

這是一個必須始終顯示滾動條:

$('.bannerflexslider').flexslider({ 
    animation: "fade", 
    controlNav: false, 
    directionNav: false, 
    slideshowSpeed: 5000, 
    animationSpeed: 600, 
    touch: true, 
    start: function(slider){ 
     $('body').removeClass('loading'); 
    } 
    });` 

這是一個必須只在某些頁面顯示的滑塊:

$('.subpageslide').flexslider({ 
    animation: "slide", 
    controlNav: true, 
    directionNav: false, 
    slideshow: true, 
    slideshowSpeed: 4000, 
    animationSpeed: 600, 
    itemWidth: 263, 
    margin: 5, 
    touch: true, 
    start: function(slider){ 
     $('body').removeClass('loading'); 
    } 
    }); 

對於一些背景,這是一個WordPress的網站和這個代碼是在js文件夾中的script.js。

我試圖從本頁面的評論中使用Rob Bennet的建議,但它使我的子頁面完全不活動,即使在它本來意圖使用的頁面上。

https://css-tricks.com/snippets/javascript/check-if-function-exists-before-calling/

+0

這應該爲你做'$(選擇).hasClass(類名);' –

+0

的可能的複製[確定某個元素有一個CSS類使用jQuery(HTTP:/ /stackoverflow.com/questions/263232/determine-if-an-element-has-a-css-class-with-jquery) –

回答

1

你可以把一個簡單的條件,將檢查是否在頁面上存在的要素創建一個flexslider之前。

if($('.subpageslide').length) { 
 
    $('.subpageslide').flexslider({ 
 
     animation: "slide", 
 
     controlNav: true, 
 
     directionNav: false, 
 
     slideshow: true, 
 
     slideshowSpeed: 4000, 
 
     animationSpeed: 600, 
 
     itemWidth: 263, 
 
     margin: 5, 
 
     touch: true, 
 
     start: function(slider){ 
 
      $('body').removeClass('loading'); 
 
     } 
 
    }); 
 
}

+0

幹得好!這已經解決了這個問題。謝謝。 – MrFox

相關問題