写js的时候,如果遇到要对一组对象绑定相同的事件,一般是这么写的:
$(".item").click(function(){
// 事件
});
Android的点击事件也是给每个对象分别添加事件监听器。
public class ItemListener implements OnClickListener{
public void onclick(view v){
//事件
}
}
for(var i=0;i<10;i++){
Item item = new Item();
ItemListener listener = new ItemListener();
item.setOnClickListener(listener);
listView.Add(item);
}
然后最近在写winform,发现里面对ListView的item对象绑定点击事件时,
不是给每个item对象都绑定事件,而是将事件绑定在ListView上,然后根据选中的item执行。
private void ListView_MouseClick(object sender, MouseEventArgs e)
{
if(!this.ListView.SelectedItems.Count()>0)
{
return;
}
// 事件
}
这种写法似乎不符合面向对象,但是感觉在效率上确实要比给每个都赋予事件要好。
我想问问js是不是也有相类似的,但是又简便的写法?
jquery的选择器实在是太好用了,写出来的东西确实非常的简洁,但是又牺牲了效率。特别是在js本身效率就不高的情况下。
jQuery里面有事件委托方法
$('body')
.on('click','.item',function(){
console.log(1)
})
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。