簡體   English   中英

導航元素具有“活動” jquery插件類時的回調函數

[英]callback function when navigation element has a class “active” jquery plugin

我正在使用[ScrollIt] [1]插件,該插件會自動在導航元素上添加“活動”類,並使其易於創建具有特征的垂直滾動頁面。

每當活動類不在帶有href="#home"的錨點元素上時,我想更改導航的不透明度。

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

我嘗試過的更新:

  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

關於如何執行此操作的任何建議?

試試,如果我了解您要尋找的行為:

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

調用回調時 ,可以使用.call()來實現以下目的:

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

然后在您的函數中,檢查this

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM