2013-02-22 64 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); 
});