2013-02-22 67 views
0

我想将多个事件附加到单个元素。但是我想为每个事件添加不同的数据。附加jQuery的多个事件的方法如下:如何在jQuery中传递多个事件句柄并传递数据

$("div.test").on({ 
    click: this.clickEventCalled, 
    mouseenter: this.mouseEnterEventCalled 
    mouseleave: this.mouseLeaveEventCalled 
}); 

但我希望能够做这样的事情:

$("div.test").on("click", { name: "Karl" }, clickEventCalled); 

,我想知道是否有一个更优雅的方式通过此操作比:

var self = this; 
$("div.test").on({ 
    click: function(event){ 
     self.clickEventCalled(event,{name:"Karl"}) 
    }, 
    mouseenter: function(event){ 
     self.mouseEnterEventCalled(event,{name:"Ben"}) 
    }, 
    mouseleave: function(event){ 
     self.mouseLeaveEventCalled(event,{name:"Ken"}) 
    } 
}); 
+0

不,为了给函数添加一个参数,你需要用括号来调用它们,为此,你需要额外的函数调用,所以这可能是最简单也是最合适的方法。 – adeneo 2013-02-22 20:09:20

回答

0

你可以这样做:

$("div.test").on("click", { name: "Karl" }, clickEventCalled) 
      .on("mouseenter", { name: "Ben" }, mouseEnterEventCalled) 
      .on("mouseleave", { name: "Ken" }, mouseLeaveEventCalled); 
});