使jQuery变量不受其他函数可用的click事件的影响

时间:2012-05-21 23:28:37

标签: jquery function variables this global

我需要通过另一个函数的回调内的方法发送变量。该变量应该是单击任何导航链接。这里是代码,而不是无力解释。逻辑是关闭的,但你会明白的。

/* Make a variable out of which link was clicked */

$('nav a').click(function(){
    var $nav = $(this);
});

$('nav').localScroll({
    duration: 500,
    easing:'easeOutSine',
    axis:'xy',
    onAfter: function(){

/* send that variable through aktivator() in the callback of localScroll() */

        $nav.aktivator();
    }
});

2 个答案:

答案 0 :(得分:2)

$nav放在更高的范围内:

var $nav;

$('nav a').click(function(){
    $nav = $(this);
});

$('nav').localScroll({
    /* ... */
    onAfter: function(){
        $nav.aktivator();
    }
});

现在两个区域都可以访问它,或者调用它的方法。

答案 1 :(得分:1)

var $nav; //higher

$('nav a').click(function(){
    $nav = $(this);
});

$('nav').localScroll({
    duration: 500,
    easing:'easeOutSine',
    axis:'xy',
    onAfter: function(){
        $nav.aktivator(); //available
    }
});