从另一个函数的if / else设置变量

时间:2012-04-21 18:37:10

标签: jquery serialscroll

由于需要考虑的CSS边距的变化,我在使用这段代码时遇到了麻烦。我想通过在var $offset函数中的if / else添加serialScroll来更改$margins插件中的.keybind。我是javascript的新手,我不确定如何正确地做到这一点。

这是我的代码:

 jQuery(function( $ )                                   
{                           
    var $nav = $('#slideshow li');  
    var $margins = 0;
    var $offset = (-220 + $margins);    //this offsets the elements 

$('#maincontent').serialScroll(             //serialscroll
    {
    items:'li',
    prev:'.leftArrow, div.logo#logo',
    next:'.rightArrow',
    offset:$offset,
    start:0,
    duration:500,
    force:false,
    stop:true,                          
    easing:'swing',
    navigation:$nav,        
    onBefore:function(e,el,$p,$i,pos)
        {
        $nav.removeAttr('id'),     //this removes id from old element
        $nav.eq(pos).attr("id","yourit"),//this adds id to new element
        $nav.removeClass('select'),    //this removes class from old element
        $nav.eq(pos).addClass('select'); //this adds class to new element
        },

/*///////////////////////////////////////////////////////
                keyboard binds
*////////////////////////////////////////////////////////

var $pane = $('#maincontent')               
$(document).keydown(function(e) //keyboard bind 
    {
    if( e.keyCode == 39 )     //right (->)
        {   
        if 
            ($('.selectstyle').hasClass("selectstyle"))
                {
                $margins = -180; //i want to get this value and add it to my $offset var
                $(".selectstyle" ).removeClass( "selectstyle", 200);
                $pane.trigger('next');
                return false;
                }               
        else
                ($(".select" ).hasClass("select"))
                {
                $margins = 0; //ditto with this var if true
                $(".select" ).removeClass( "select", 200);
                $pane.trigger('next');
                return false;
                }
        }
    });

1 个答案:

答案 0 :(得分:0)

您在函数中声明了$margins,因此您将其设为局部变量。如果您希望其他函数使用它,您需要在函数外部声明它并使其成为全局函数。

尝试在顶部声明var $margins = 0;的位置旁边声明$offset。 然后从if-else语句中删除var旁边的单词$margins

希望它会有所帮助。