代理人()方法是为匹配元素的子元素添加一个或多个事件,并规定当这些事件发生时运行的函数。下面就是详细介绍,有需要的朋友可以来介绍一下。
代理人()方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。下面我们具体来了解一下。
语法结构:
代码如下:
$(选择器)。委托(选民的孩子,类型,数据,函数)
参数说明:
儿童选择器必需。规定要附加事件处理程序的一个或多个子元素。
事件必需。规定附加到元素的一个或多个事件。
由空格分隔多个事件值。必须是有效的事件。
数据可选。规定传递到函数的额外数据。
功能必需。规定当事件发生时运行的函数。
代表的函数是被某一类型的共同父元素调用,
代码如下:
listNode.delegate( .条件-删除,点击,函数(e){
e。防止默认();
$(这个)。父母(。搜索条件项目)。移除();
}
);
完整实例
代码如下:
函数renderSearchConditions(选择id,条件){ var conditions template= div class= search-conditions-list-section
ul class=搜索条件列表/ul
/div ,
listNode=$(conditionsTemplate);
listitem template= Li class= search-condition-item data-type= { conditon type } span { condition }/spana class= condition-remove href= # x/a/Li;
对于(条件中的变量键)
{
var condition=conditions[key].关键词,
conditionType=conditions[key].类型,
listItemNode=$ .substitute(listItemTemplate,{conditionType:conditionType,condition:condition });
listnode。append(listItemNode);
}
$(选择身份证).prepend(列表节点);
listNode.delegate( .条件-删除,点击,函数(e){
e。防止默认();
$(这个)。父母(。搜索条件项目)。移除();
}
);
}
1.绑定的事务中,获取事务源,调用隐藏办法,并传入事务源对象:
代码如下:
$(文档)。委托(正文,点击,函数(e) {
var ev=e | | window.event//事务
//var target=ev。目标| | ev。src元素;//获得事务源
hide(ev.target || ev.srcElement,true);
}
);
底本用的$(窗口),然则IE8之前的,貌似有臭虫。
$(文档)不好之处,页面加载完后,会触发一次.
2.隐藏办法中,断定该事务源是否从指定元素中发出,即事务源元素是不是指定元素的子元素或者其本身。
代码如下:
//子元素断定====
如果(!窗户。find)html元素。原型。包含=函数(B){
返回这个。比较文档位置(B)-190
};
函数隐藏(dom,isClick) {
var nn,t,_isClick=!isClick
尝试{
对于(对象列表中的变量n){
nn=obj list[n];
t=nn。get选项( target )[0];
if(_ is click(t==DOM | | t . contains(DOM)))返回;
如果(!_isClick ||!nn.box[0].包含(DOM))nn。hide();
}
} catch(e) {
}
}
3.上方的隐藏办法中,点击变量断定是不是点击事务触发的。以便处理惩罚调整大小的调整大小用设置超时作处理惩罚,降落内存消费。
代码如下:
var reTime=null
$(窗口)。bind(resize ,function() {
if(reTime)清除超时(reTime);
reTime=setTimeout(hide,50);
}
);