Javascript 将函数绑定到具有参数的不同事件
我有两个EventListener,它们触发两个函数。但是我认为应该可以让它们触发相同的函数 eventlisteners正在侦听击键和鼠标滚轮Javascript 将函数绑定到具有参数的不同事件,javascript,jquery,html,Javascript,Jquery,Html,我有两个EventListener,它们触发两个函数。但是我认为应该可以让它们触发相同的函数 eventlisteners正在侦听击键和鼠标滚轮 $(document).mousewheel(onMouseWheel); function onMouseWheel(event,delta) { if(delta<0){ code... } else if(delta>0){ code... } } 是否可以将这两个功能结合起来,这样我就只有一个功能了?我建
$(document).mousewheel(onMouseWheel);
function onMouseWheel(event,delta)
{
if(delta<0){
code...
}
else if(delta>0){
code...
}
}
是否可以将这两个功能结合起来,这样我就只有一个功能了?我建议您这样做:
function onMouseWheel(event,delta) {
if(delta<0){
detectDown();
} else if(delta>0){
detectUp();
}
}
function onKeyDown(e) {
if (e.keyCode == 37){
detectDown();
} else if (e.keyCode == 39){
detectUp();
}
}
鼠标滚轮上的函数(事件,增量){
if(delta0){
detectUp();
}
}
函数onKeyDown(e){
如果(e.keyCode==37){
detectDown();
}否则如果(e.keyCode==39){
detectUp();
}
}
因为按键和控制盘事件是如此不同。我猜你想把这些函数结合起来
detectDown
对于keydown和wheel事件都是相同的。这样做就抓住了这个意图。谢谢你的评论。我可能会那样做。但我真正想要的是将onmouseheel和onKeyDown结合起来,所以它们只是一个函数。这可能是个坏主意?我不认为这样做有什么意义。你仍然会有这4个if语句,我可以有一个if(e.keyCode==37 | | | deltaOk,我理解这一点,但我不明白这一点。你从这些类型的优化中获益甚微。想想实际的方面:你会如何命名这样的函数?mouseweelandkeydownlistener
?听起来不对。如果你还想听滚动
?什么如果您还想在numlock关闭时检测numpad keydown?这会使您的功能过于复杂。好的。谢谢您回答我的问题!只想以正确的方式执行:)
function onMouseWheel(event,delta) {
if(delta<0){
detectDown();
} else if(delta>0){
detectUp();
}
}
function onKeyDown(e) {
if (e.keyCode == 37){
detectDown();
} else if (e.keyCode == 39){
detectUp();
}
}