开发者社区> 问答> 正文

javascript 有没有更高效的事件绑定写法?

写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本身效率就不高的情况下。

展开
收起
a123456678 2016-07-11 14:12:46 2160 0
1 条回答
写回答
取消 提交回答
  • jQuery里面有事件委托方法

    $('body')
        .on('click','.item',function(){
            console.log(1)
        })
    2019-07-17 19:54:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载