html按钮的动态onclick调用
Dynamic onclick call of html buttons
在我的javascript中,我有一个由3个元素组成的数组:
var array = ["one", "two", "three"];
如何创建3个html按钮,使每个按钮的onclick调用一个带有参数array[I]的函数。
对于我想要的结果:
<button onclick='function("one")'></button>
<button onclick='function("two")'></button>
<button onclick='function("three")'></button>
使用内联处理程序有时会给我们带来麻烦。例如,通过在事件处理程序中使用this
访问当前元素。在这种情况下,可以使用dataset
和addEventListener
。
var array = ["one", "two", "three"];
array.forEach(function(itm){
var elem = document.createElement("button");
elem.textContent = itm;
elem.dataset.data = itm;
elem.addEventListener("click", clickHandle, false);
document.body.appendChild(elem);
});
function clickHandle(){
alert(this.dataset.data); //will display "one"/"two"/"three" based on the element clicked.
}
演示
为了让您快速运行,这里有一个对现有代码的快速修复。
如果你说按钮会按顺序排列,那么你可以利用按钮的索引。
var array = ["one", "two", "three"];
function Myfunction(e){
var index = $('.container button').index(e.target)
alert(array[index]); // now you have the value here, use it for your further stuff
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<button onclick='Myfunction(event)'></button>
<button onclick='Myfunction(event)'></button>
<button onclick='Myfunction(event)'></button>
</div>
如果您正在寻找一种更干净的方法,那么我建议不要使用onclick
属性来绑定事件,而是使用Jquery直接绑定事件。如下图所示。。
var array = ["one", "two", "three"];
$('.container button').on('click', function() {
var index = $('.container button').index($(this));
alert(array[index]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<button ></button>
<button ></button>
<button ></button>
</div>
var btn_list; //The buttons parent element
var your_func; //callback function
for (var i = 0; i < array.length; i++)
{
btn = document.createElement('BUTTON'); //create element
btn.onclick = function() //assign callback, with item
{
your_func(array[i]);
};
btn_list.appendChild(btn); //and add it to parent element
}
当然,您的回调函数和buttons父元素是在…之前定义的。。。。
相关文章:
- 与params的onclick调用
- JavaScript onclick 调用函数
- html按钮的动态onclick调用
- 使用onclick调用属性对象函数
- 从 onclick 调用函数,为什么我的参数被评估为 true
- 如何从 HTML 中的 onclick 调用 ASP 函数
- Javascript - 找不到函数?!从onClick调用,函数在同一页面中
- 使用 onClick 调用 Javascript 函数
- 使用onclick调用php(更快的加载时间)
- 货币兑换 - 如何从 onclick 调用函数中的函数
- 使用onClick调用JavaScript函数-使用表单元素值.
- 如何从onClick调用函数
- 使用表的td中的onclick调用jquery函数
- 使用onclick调用的函数切换文本
- 使用onclick调用变量对象中的函数
- Javascript函数范围和从onclick调用
- 在for循环中,如何传递document.getElementById('').onClick调用的函数
- 菜单项onclick调用一个multi-css onhover事件
- 如何在html中用onclick调用firefox插件函数
- 使用参数从OnClick调用JS函数