window.setInterval函数不作为click函数运行,变量undefined

时间:2012-06-21 09:15:05

标签: jquery

此功能可以正常工作,

window.setInterval(function(){
    var active = $('#frontpageControls a.active');
    var next = active.next().length > 0 ? active.next() : $('#frontpageControls .first'); 
        active.removeClass("active");
        next.addClass("active");
    var activeFPElement=$("#MainFrontpage li:visible");
    var nextFPElement = activeFPElement.next().length > 0 ? activeFPElement.next() : $('#MainFrontpage .first');
    activeFPElement.hide();
    nextFPElement.show();

        //alert($next.text());
    }, 5000);

但是,当我在此

中运行相同的命令时
$("#frontpageArrows .right").bind("click", function() {
        var active = $('#frontpageControls a.active');
        var next = active.next().length > 0 ? active.next() :    $('#frontpageControls .first'); 
        active.removeClass("active");
        next.addClass("active");
        var activeFPElement=$("#MainFrontpage li:visible");
        console.log(activeFPElement+ " Fpelement ");
        var nextFPElement = $activeFPElement.next().length > 0 ? $activeFPElement.next() : $('#MainFrontpage .first');
        activeFPElement.hide();
        nextFPElement.show();
        return false;
    });

该函数无法正常运行,我收到一个错误,即activeFPElement未定义。 任何人都可以帮助我为什么这个函数作为setInterval的处理程序而不是bind?

谢谢:)

1 个答案:

答案 0 :(得分:2)

$activeFPElement.next()应为activeFPElement.next()

您宣布activeFPElement,但您使用的是$activeFPElement