我已经更新了我的问题,因为我认为我有解决原始问题的方法。我想将$ margin转换为一个全局变量,我可以用它来计算另一个函数的$ 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://tinyurl.com/cqwxw6e我希望用户使用serialscroll插件主要使用箭头键导航网站。我遇到的问题是,如果用户通过按向下箭头突出显示图像,然后按向右箭头键继续下一个图像,则由于连续滚动将边距宽度计入帐户而超出。
这让我悲伤了一个多星期。我尝试过排队和setTimout函数,但它们破坏了UI的流畅性。基本上我上面的问题是更改$ offset变量以考虑何时使用.selectstyle
类突出显示图像。我很感激上述问题的任何解决方案来动态控制$offset
。
答案 0 :(得分: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),
请注意,可能有更好的方法来做你想要的。
也许这是o.k.由你:
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),