Javascript 将不同的事件绑定到多个HTML元素,但只执行一个函数

Javascript 将不同的事件绑定到多个HTML元素,但只执行一个函数,javascript,bind,jquery,Javascript,Bind,Jquery,我有一个按钮,一个div和一个select组合框 我想在单击按钮、div中的mouseenter和组合框的onchange和blur时执行一个特定的函数 我现在就这么做 $("#divID").bind('mouseenter',function(){ // do my stuff }) $("#comboID").bind('blur change',function(){ // do my stuff }) $("#buttonID").bind('click',f

我有一个按钮,一个div和一个select组合框

我想在单击按钮、div中的mouseenter和组合框的onchange和blur时执行一个特定的函数

我现在就这么做

$("#divID").bind('mouseenter',function(){

   // do my stuff
}) 

$("#comboID").bind('blur change',function(){

   // do my stuff
})  

$("#buttonID").bind('click',function(){

   // do my stuff
})  
我每次都做同样的事情。我想将所有事件组合在一起以避免重复。有没有办法将每个元素与一个语句中的特定事件绑定在一起

我知道我可以在一个单独的函数中编写代码,并每次调用它来解决重复问题


但是我想知道,由于您希望将不同的事件附加到不同的元素,所以这可以在没有单独函数的情况下完成,并且只在一个语句中执行jQuery。但是可以声明一个回调函数,用于调用所有事件

var callback = function () {
  // do my stuff
};

$("#divID").bind('mouseenter', callback);
$("#comboID").bind('blur change', callback);
$("#buttonID").bind('click', callback);

如果不使用jquery,则始终可以将其他事件设置为等于第一个事件。。但好的做法是创建一个单独的函数

您有带seprate选择器的seprate事件,因此一个选择器或事件是不够的,您可以映射ID和事件。我认为jquery无法帮助实现单一状态


很好……但是从逻辑上讲,绑定语句是三次执行的……有没有任何jQuery api可以将所有绑定语句都放在一个复合语句中……jQuery也重复执行此类操作,但对我们来说是隐藏的。
arrIDs = ['divID','comboID','buttonID'];
arrEvents = ['mouseenter','blur change','click'];

for(idx=0; idx < arrIDs.length; idx++) 
    $("#" + arrIDs[idx] ).bind(arrEvents[idx], yourFunction);

function yourFunction(event)
{
    alert("yourFunction call by " + event.target.id);  
}