0

我已经更新了我的问题,因为我认为我有解决原始问题的方法。我想将 转换为可用于计算另一个函数$margins的全局变量。$offset我需要在(箭头)按键、鼠标点击和可能的鼠标滚轮操作之后更新变量。有一个简单的解决方案吗?

这是我的代码:

$(document).keydown(function(e){  //keyboard bind   
    if( e.keyCode == 39 ){//right (->)
        if($('.selectstyle').hasClass("selectstyle")){
            $margins = -180;
        } else ($(".select" ).hasClass("select")){
            $margins = 0;
        }
    }
});
$offset = (-220 + $margins),            

我提出的代码可能不适合我的解决方案。我正在处理的网站是http://lastnighti.co.uk/我希望用户主要使用 serialscroll 插件通过箭头键来浏览该网站。我遇到的问题是,如果用户通过按向下箭头突出显示图像,然后继续按向右箭头键以继续到下一个图像,则由于 serialscroll 考虑了边距宽度,它会被过度拍摄。

这让我伤心了一个多星期。我尝试过排队和setTimout函数,但它们破坏了 UI 的流畅性。基本上我上面的问题是更改$offset变量以说明何时和图像在.selectstyle类中突出显示。我将不胜感激上述问题的任何解决方案以动态控制$offset.

4

1 回答 1

0

制作一个全局变量是通过以下方式完成的window

window.varName = "foo";

所以你想要这个:

$(document).keydown(function(e){  //keyboard bind   
    if( e.keyCode == 39 ){//right (->)
        if($('.selectstyle').hasClass("selectstyle")){
            window.$margins = -180;
        } else ($(".select" ).hasClass("select")){
            window.$margins = 0;
        }
    }
});
$offset = (-220 + $margins),  

请注意,可能有更好的方法来做你想做的事。

也许您可以这样做:

var $margins;

$(document).keydown(function(e){  //keyboard bind   
    if( e.keyCode == 39 ){//right (->)
        if($('.selectstyle').hasClass("selectstyle")){
            $margins = -180;
        } else ($(".select" ).hasClass("select")){
            var $margins = 0;
        }
    }
});

$offset = (-220 + $margins),  
于 2012-04-22T01:44:10.327 回答