通过以下方式将多个选择器与委托一起使用:
$(contextElement).delegate('selector1, selector2' , 'eventName', function(){ //blabla });
在管理DOM元素变得至关重要的大型项目中,将元素存储在绑定到window对象的变量中成为一种有吸引力的工作方式.
但是,我无法加入在委托方法上使用多个选择器的这种方式:
window.someControl = {
contextElement = $('selector0'),
DOMasProperty1 = $('selector1'),
DOMasProperty2 = $('selector2')
}
someControl.contextElement.delegate(
'you magic answer for using DOMasProperty1
and DOMasProperty2',
'click',
function(){
//blabla
});
注意:我知道选择器与其jQuery对象相反的字符串值可以存储在someControl对象中.但是,我存储jQuery对象以提高代码的性能,并且一次又一次地调用字符串值将使这种工作方式与仅使用方法的选择器名称没有什么不同.
我需要一个答案,以某种方式结合使用委托和减少DOM查找
解决方法:
jQuery对象具有.selector属性,该属性将引用原始选择器.
someControl.contextElement.delegate(
window.someControl.DOMasProperty1.selector + ',' +
window.someControl.DOMasProperty2.selector,
'click',
function(){
//blabla
});
请注意,它适用于:
DOMasProperty1 = $('selector1'),
…但是如果您包括DOM遍历方法,例如:
DOMasProperty1 = $('selector1').parent(),