首页 > 其他 > 详细

delegate

时间:2014-07-23 18:01:46      阅读:275      评论:0      收藏:0      [点我收藏+]

在我们用javascript动态添加某一类型的元素时,这些元素需要绑定某一事件,比如click事件,那么我们就需要用到delegate函数

如果我们在每一次动态添加这种类型的元素的时候,都为该元素绑定某一事件的话,这样比较浪费。

delegate函数就是让我们为某一类型的元素只绑定一次某一事件即可,即使未来有若干次的删除或添加,该事件都有效。

delegate 的函数是被某一类型的共同父元素调用,

listNode.delegate(‘.condition-remove‘,‘click‘,function(e){

e.preventDefault();

$(this).parents(‘.search-condition-item‘).remove();

});

 

完整实例bubuko.com,布布扣(要实现的效果)

function renderSearchConditions(selectionId,conditions){var conditionsTemplate = ‘<div class="search-conditions-list-section">‘+

‘<ul class="search-conditions-list"></ul>‘+
‘</div>‘,
listNode = $(conditionsTemplate);
listItemTemplate = ‘<li class="search-condition-item" data-type="{conditonType}"><span>{condition}</span><a class="condition-remove" href="#">x</a></li>‘;

for(var key in conditions)

{
var condition = conditions[key].keyword,

conditionType = conditions[key].type,
listItemNode = $.substitute(listItemTemplate,{conditionType:conditionType,condition:condition});
listNode.append(listItemNode);
}
$(selectionId).prepend(listNode);
listNode.delegate(‘.condition-remove‘,‘click‘,function(e){
e.preventDefault();
$(this).parents(‘.search-condition-item‘).remove();


});
}

delegate,布布扣,bubuko.com

delegate

原文:http://www.cnblogs.com/lmy-ms/p/3863622.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!