我已经更新了我的问题,因为我认为我有解决原始问题的方法。我想将$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 插件浏览网站。我遇到的问题是,如果用户通过按向下箭头突出显示图像,然后继续按向右箭头键继续下一个图像,则由于串行滚动考虑了边距宽度,它就会被超越。
这已经让我悲伤了一个多星期。我尝试过排队和setTimout
函数,但它们破坏了 UI 的流畅性。基本上我上面的问题是更改$offset
变量以考虑何时使用 .selectstyle
类突出显示图像。我将不胜感激上述问题的任何解决方案,以动态控制$offset
。
使用 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),