导航元素具有类“活动”jquery插件时的回调函数

时间:2014-02-28 14:05:41

标签: javascript jquery

我正在使用[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

有关我如何做到这一点的任何建议?

2 个答案:

答案 0 :(得分:0)

如果我理解您正在寻找的行为,请尝试:

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

答案 1 :(得分:0)

当你打电话给你回调时,你可以像这样使用.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);
}