Javascript JS为click event missed call创建了带有参数的按钮
我从js在HTML中创建一些按钮,这取决于作为输入接收的值。 很简单,如果输入是5,我画5个按钮,文本从1到5 这些按钮需要调用一个函数,并将每个按钮的计数器作为输入传递(button1将1传递给被调用函数,button2传递2,…) 这就是问题所在:调用所有按钮时,使用相同的输入调用函数(在本例中,值为5表示所有) 为什么??这是我写的:Javascript JS为click event missed call创建了带有参数的按钮,javascript,jquery,html,function,parameters,Javascript,Jquery,Html,Function,Parameters,我从js在HTML中创建一些按钮,这取决于作为输入接收的值。 很简单,如果输入是5,我画5个按钮,文本从1到5 这些按钮需要调用一个函数,并将每个按钮的计数器作为输入传递(button1将1传递给被调用函数,button2传递2,…) 这就是问题所在:调用所有按钮时,使用相同的输入调用函数(在本例中,值为5表示所有) 为什么??这是我写的: var toAdd = document.createDocumentFragment(); for (var i = 0; i < nErog; i
var toAdd = document.createDocumentFragment();
for (var i = 0; i < nErog; i++) {
var newDiv = document.createElement('div');
newDiv.id = 'e' + i;
//newDiv.className = 'ansbox';
newDiv.style.margin = "20px";
newDiv.style.fontSize = "350%";
newDiv.style.fontWeight = "bold";
toAdd.appendChild(newDiv);
}
document.getElementById('erogs').appendChild(toAdd);
for (var i = 0; i < nErog; i++) {
$("#e" + i).dxButton({
text: i + 1,
onClick: function () {
RetrieveErogs(i+1);
},
height: "120px",
width: "120px"
});
}
所有按钮都使用相同的值调用函数,因此我想我错过了指定onClick事件的一些内容,但是什么呢?尝试用
RetrieveErogs($(this).text())
替换RetrieveErogs(I+1)
或者,尝试使用闭包:
(function(x){
$("#e" + x).dxButton({
text: (1+x),
onClick: function () {
RetrieveErogs(1 + x);
},
...
});
})(i);
那么
text
也一样吗?@Arvind文本是正确的
(function(x){
$("#e" + x).dxButton({
text: (1+x),
onClick: function () {
RetrieveErogs(1 + x);
},
...
});
})(i);