js 循环li添加点击事件 (闭包的应用)

var aLi = document.querySelectorAll(‘.article-tab li‘);
  for (var i = 0; i <= aLi.length; i++) {      
  (function(){      
    var p = i     
    aLi[i].onclick = function() {      
      alert(p);      
    }  
  })();  
}

时间: 2024-10-22 17:59:14

js 循环li添加点击事件 (闭包的应用)的相关文章

使用for循环添加点击事件时,获取i值的方法

比如页面上有一个ul,数个li,现在给li添加点击事件. var li = document.getElementsByTagName("li"); for(var i = 0; i < li.length; i++) { li[i].addEventListener("click",function () { console.log(i); }) } 但是,这样写之后我们发现,点击任何一个li,打印的值都为5,这是因为闭包中共用i值,而i的值由于执行for循

为未来元素添加点击事件的两种写法

哈哈哈,小七来了,对于经常搬砖撸代码的猴子们,一定会遇到给好多li(死的还是动态字符串拼接生成的(对未来元素添加不到事件的看之前写的事件委托))添加点击事件 第一种: var index=0; for(var i=0;i<li.length;i++){ li[i].index=i;//必须的 li[i].onclick=function(){ alert(1) } } 第二种: 事件的另一种写法(动态生成的多个li标签都加onclick="jia(this)就不用for循环里面嵌套点击事件

echarts对每个data[i]的图片添加点击事件

1.综述:以饼图为例,只需要对echarts对象option添加以下几行代码即可 //添加点击事件(单击),还有其他鼠标事件和键盘事件等等 myChart1.on("click", function (param){ alert(param.dataIndex+':'+option1.series[0].data[param.dataIndex].name); }); 2.效果图 3.目录结构 4.<head></head>和<body></b

jquery无法为动态生成的元素添加点击事件的解决方法

遇到 jquery无法为动态生成的元素添加点击事件,谷歌一下,整理一下解决方法如下: (<li>中间的元素是动态生成的), 现在想为<i>添加点击事件, 例子如下: <div> <ul> <li> <span> <i class='icon'>这是元素内容</i> //i是动态生成 </span> </li> </ul> </div> 解决方法如下: $(docu

Echart饼图、柱状图、折线图(pie、bar、line)添加点击事件

var myChart= echarts.init(document.getElementById('myChart')); myChart.on('click', function (param) { alert('点击了我!'); }); Echart事件参数可以去config.js查找 Echart饼图.柱状图.折线图(pie.bar.line)添加点击事件

Ztree使用之为图标添加点击事件

写在前面的话: 最近有个需求是为Ztree的图标添加点击事件,心想这好办呀,读读Ztree的官方文档一定会有相应的图标点击事件的,于是我打开了Ztree的官网 ,找了好久没有直接针对图标的点击事件,我的三千烦恼丝又要开始掉了. 解决办法: 好在我相信一个道理:“只要思想不滑坡,办法总比困难多!”,既然没有直接的点击事件那还有间接的点击事件,如:onClick,onMouseDown,onMouseUp等,他们都带有三个参数:event(标准的js event对象),treeId(对应ZTree的

IOS - UIView添加点击事件

UIView通过手势(Gesture-UITapGestureRecognizer)添加点击事件, 类似于UIButton的效果. 示例: UIImageView *iKnowIcon = [CYResource loadImageView:@"free-question-once-more-i-know.png"]; iKnowIcon.top = questionIcon.top + scaleWidthWith320(200); iKnowIcon.centerX = self.

UIView利用hitTest添加点击事件

UIView利用hitTest添加点击事件 by 伍雪颖 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { CGPoint point = [[touches anyObject] locationInView:self.view]; CALayer *layer = [self.view.layer hitTest:point]; if (layer == self.blueView.layer) { [[[U

Qt:添加点击事件的Label并显示图片

1.给label添加点击事件 Qt中原本的label是没有点击事件的,如果想添加点击事件的话,可以继承QLabel类并重载鼠标事件(比如mousePressedEvent),然后在鼠标事件中发送一个信号,具体如下: // clicklabel.h #ifndef CLICKEDLABEL_H #define CLICKEDLABEL_H #include <QWidget> #include <QLabel> class ClickedLabel : public QLabel {