2014-02-28 25 views
0

我正在使用[ScrollIt] [1]插件,它自動添加一個導航元素上的「活動」類,並可以很容易地創建分頁,功能垂直滾動頁面。當導航元素有一個類「活躍」的jQuery插件的回調函數

只要活動類不在具有href="#home"的定位元素上,我想要更改導航的不透明度。

但我不知道如何檢查當前有效的項目是否沒有這個href="#home"的元素,如果不是添加不透明度。

什麼我已經試過UPDATE:

function myCallBackFunction() { 
    $('.navbar').css("opacity",this.is('[href="#home"]') ? 1 : 0); 
    } 
    var updateActive = function(ndx,myCallbackFunction) { 
     if(settings.onPageChange && ndx && (active != ndx)) settings.onPageChange(ndx); 

     active = ndx; 
     $('[data-scroll-nav]').removeClass(settings.activeClass); 
     $('[data-scroll-nav=' + ndx + ']').addClass(settings.activeClass); 
     myCallbackFunction.call($('[data-scroll-nav=' + ndx + ']')); 
    }; 

我得到這個錯誤:Uncaught TypeError: Cannot call method 'call' of undefined

,我怎麼可能做到這一點有什麼建議?

+0

更改opa城市從1到什麼? 0? –

+0

從0這是實際到1 – agis

回答

0

當你打電話給你回調,你可以使用.call() liek那檢查this

function myCallBackFunction() { 
    $('.navbar').css("opacity",this.is('[href="#home"]') ? 1 : 0); 
} 
+0

剛試過,我得到這個錯誤:'未捕獲的類型錯誤:不能調用未定義的方法'調用'我用我試過的確切代碼編輯我的問題。 – agis

+0

從參數'function(ndx){}''中移除'myCallBackFunction'' –

0

試試,如果我理解的行爲您正在尋找:在你的函數

var updateActive = function(ndx, myCallbackFunction) { 
    //the original code 
    myCallbackFunction.call($('[data-scroll-nav=' + ndx + ']')); 
} 

然後,您:

$('.navbar').css("opacity",$('[data-scroll-nav][href="#home"].active').length?0:1); 
+0

試過這個也不行,請再看看我的問題,我已經編輯過。 – agis

相關問題