Javascript 将函数绑定到具有参数的不同事件

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... } } 是否可以将这两个功能结合起来,这样我就只有一个功能了?我建

我有两个EventListener,它们触发两个函数。但是我认为应该可以让它们触发相同的函数

eventlisteners正在侦听击键和鼠标滚轮

$(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();
    }
}