将多个单击处理程序合并为一个

假设我有两个执行相同function的点击处理程序:

$('#div1').click(function(event) { alert('here'); }); $('#div2').click(function(event) { alert('here'); }); 

如何将这两个处理程序合并为一个而不是重复调用警报?

就像是 :

 $('#div1').click.('#div2').click(function(event) { alert('here'); }); 

试试这个:

 $('#div1, #div2').click(function(event) { alert('here'); }); 

此外,如果你有很多div元素,包含在一个共同的父元素中,你可以利用事件委托并将一个处理程序附加到父本身,如下所示:

 $('.common-parent').on('click', 'div', function(event) { ... }); 

第一种方式:

 $('#div1, #div2').click(function(event) { alert('here'); }); 

第二种方式:

 function doIt(e) { alert('here'); } $('#div1').click(doIt); $('#div2').click(doIt); 

请注意,您遇到此问题的事实有时意味着您应该使用类而不仅仅是id,以便您可以执行类似的操作

 $('.alertable').click(function(event) { alert('here'); });