0

由于需要考虑 CSS 边距的变化,我在处理这段代码时遇到了问题。我想通过在函数中添加if/else来更改var $offset插件中的。我是 javascript 的新手,我不确定如何正确执行此操作。serialScroll$margins.keybind

这是我的代码:

 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;
                }
        }
    });
4

1 回答 1

0

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

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

希望它会有所帮助。

于 2012-04-21T18:47:45.220 回答