如何按类循环函数事件
How to Loop an function event by class?
我想通过点击类来循环一个函数。代码如下:
<<p> 类方法/strong>HTML
<button class="btn">B</button>
<button class="btn">I</button>
<div id="ctn"></div>
JavaScript <script>
var btn = document.getElementsByClassName('btn');
var ctn = document.getElementById('ctn');
ctn.contentEditable = true;
for(i=0; i<btn.length; i++){
var a = ["'bold'","'italic'"];
btn[i].addEventListener('click', function(){
document.execCommand(a[i],false,null);
}, false);}
</script>
点击的时候什么也没发生。使用ID查看手册下面的内容。
<<p> ID方法/strong>HTML
<button id="bold">B</button>
<button id="italic">I</button>
<div id="ctn"></div>
JavaScript var bold = document.getElementById('bold');
var italic = document.getElementById('italic');
bold.addEventListener('click', function(){document.execCommand('bold',false,null);}, false);
italic.addEventListener('click', function(){document.execCommand('italic',false,null);}, false);
的ID方法是否有效。但是Class不起作用。如何按类循环函数?
注意:用JavaScript而不是JQuery回答这个问题。谢谢你的阅读:)
你需要使用闭包来绑定循环中的元素,像这样:
for(i=0; i<btn.length; i++){
(function(i) { //closure inside so i is correct.
var a = ["bold","italic"]; //removed quotes
btn[i].addEventListener('click', function(){
document.execCommand(a[i],false,null);
}, false)
})(i);
}
相关文章:
- 无法在java脚本中调用图像的点击事件函数
- 如何在事件函数中访问窗口实例
- 事件函数完整日历中的多个ajax调用
- 如何使参数在事件函数中工作
- Jquery Onclick 事件函数第二次不起作用
- 宣传单:双击时不要触发点击事件函数
- Bootstrap/JQuery-单选按钮组事件函数
- 将jQuery事件函数应用于新的Knockout.js数组元素
- 防止在元素上触发新事件,直到当前事件函数在jQuery中完成
- 有没有一种方法可以将多个参数传递给主干js中的事件函数
- 用javascript更新事件函数中的全局变量
- Jquery:如何在事件函数之外获取变量
- 将参数传递给事件函数
- postMessage - 多个 postMessage 事件/函数/回调
- 多事件函数中的悬停延迟
- JavaScript 事件函数 - 在声明之前调用
- 使用 jQuery 循环设置事件函数触发器
- 暂停,直到事件/函数使用 jquery 或 JavaScript 完成
- 如何访问 jQuery 事件函数中的对象属性
- 单击事件函数未从花式盒子灯箱内触发