这篇文章主要详解了jquery事件代理人()的使用方法,委托()方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数,感兴趣的小伙伴们可以参考一下
我们先看官方是怎么说代理人()方法,委托()方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数,使用代理人()方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。
语法很简单
$(选择器)。委托(子选择器、事件、数据、函数)
参数说明
childSelector 必需。规定要附加事件处理程序的一个或多个子元素。
event 必需。规定附加到元素的一个或多个事件。
由空格分隔多个事件值。必须是有效的事件。
data 可选。规定传递到函数的额外数据。
function 必需。规定当事件发生时运行的函数。
代表的函数是被某一类型的共同父元素调用。
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);
});
以上就是关于jquery事件代理人()的使用方法相关内容,希望对大家的学习有所帮助。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。