Javascript 按键和鼠标单击后将函数变量转换为全局变量

Javascript 按键和鼠标单击后将函数变量转换为全局变量,javascript,jquery,javascript-events,global-variables,serialscroll,Javascript,Jquery,Javascript Events,Global Variables,Serialscroll,我更新了我的问题,因为我认为我有一个解决我原来问题的方法。我想将$margins转换为一个全局变量,用于计算另一个函数的$offset。我需要在(箭头)按键、鼠标单击和可能的鼠标滚轮操作之后更新变量。有没有简单的解决办法 这是我的密码: $(document).keydown(function(e){ //keyboard bind if( e.keyCode == 39 ){//right (->) if($('.selectstyle').hasClas

我更新了我的问题,因为我认为我有一个解决我原来问题的方法。我想将$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),            
我提供的代码可能不适合我的解决方案。我正在开发的网站是我希望用户主要通过使用serialscroll插件的箭头键来浏览网站。我遇到的问题是,如果用户通过按向下箭头突出显示一个图像,然后继续按向右箭头键进入下一个图像,则由于串行滚动考虑了边距宽度,因此超出了范围


这让我悲伤了一个多星期。我尝试过排队和设置超时功能,但它们破坏了UI的流动性。基本上,我上面的问题是更改$offset变量,以说明何时使用
.selectstyle
类突出显示图像。我希望能为上述问题提供任何解决方案,以动态控制
$offset

正在使用
窗口制作全局变量

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),  

您不转换它,而是设置一个全局值,然后在keydown或任何您可能需要检查语法的地方将其指定。因为我使用的是serialScroll的箭头键,用于更改滚动窗口中元素的样式,我需要使用$offset来补偿CSS边距的变化,并滚动正确的像素量。@user1317417。您不能在全局范围内声明
$margins
吗?您好,格多龙,恐怕我仍然无法使用该变量。@user1317417。试试这个:
$offset=(-220+窗口。$margins)
再次感谢gdoron,但我仍然无法让它工作。如果你有时间的话,也许你可以在我上面的网站上看看我的lastnighicopy.js?正如我之前所说,我对javascript非常陌生,所以我可能错过了最明显的解决方案。@user1317417。我在那里看不到javascript。抱歉,Gdoron,该文件名为lastnightcopy.js。它是主要的js。