动态数据添加点击事件

最近有一个项目,是给每一个列表加上点击事件,列表数据是动态的
于是乎写了下面代码

<ul>
  <li ms-for="(index,el) in @columnList">
    {{el}}
  </li>
</ul>

$('li').click(function(){
  console.log($(this))
})

但发现根本不执行,想着应该是事件根本没有绑到dom上,于是直接用onclick

<ul>
  <li ms-for="(index,el) in @columnList" onclick="test(this)">
    {{el}}
  </li>
</ul>

function test(e){
  console.log($(e))
}

可行,但是总觉得这样写麻烦了,其实也没麻烦多少,但是还是想看看click到底怎么了,也不想把事件绑在dom上
后来查了一些资料,找到了on()这个方法,

on() 和 click() 的区别:
二者在绑定静态控件时没有区别,但是如果面对动态产生的控件,只有 on() 能成功的绑定到动态控件中。

<ul>
  <li ms-for="(index,el) in @columnList">
    {{el}}
  </li>
</ul>

$('ul').on('click','li',function(){
  console.log($(this))
})
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,543评论 1 11
  • 事件流 JavaScript与HTML之间的交互是通过事件实现的。事件,就是文档或浏览器窗口中发生的一些特定的交互...
    DHFE阅读 847评论 0 3
  • 今天语文老师给我们讲了两个小故事。第一个故事是:一个蚂蚁窝里有大部分勤劳的蚂蚁,正在爬来爬去不停的搬粮食...
    45cbff51831c阅读 610评论 0 1
  • 历年中考数据统计显示,82%的考生存在偏科现象,其中以数学偏科最为严重。2016年中考数据显示,有10%的考生由于...
    好奇怪的郝小姐阅读 594评论 0 1
  • 清单营 ❀ 10天10本书 2018-03-13-D02 《领导力》 By 安安 1、找到自己 做事前,要认清自我...
    安安Ro7cie阅读 128评论 0 0