gpt4 book ai didi

javascript - JS创建带有点击事件未接来电参数的按钮

转载 作者:行者123 更新时间:2023-12-03 00:52:05 25 4
gpt4 key购买 nike

我根据作为输入接收的值在 HTML 中从 js 创建一些按钮。所以,很简单,如果输入是 5,我绘制 5 个按钮,文本从 1 到 5。

这些按钮需要调用一个函数,将每个按钮的计数器作为输入传递(button1 将 1 传递给被调用的函数,button2 将 2 传递给被调用的函数,...)。

这就是问题所在:所有按钮在调用时都会使用相同的输入调用该函数(在示例中,所有按钮的值为 5)。

为什么?这是我写的:

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"
});
}

RetrieveErogs 在哪里

function RetrieveErogs(erogatore) {
alert(erogatore);
}

所有按钮都调用具有相同值的函数,所以我想我错过了指定 onClick 事件的内容,但是什么呢?

最佳答案

尝试将 RetrieveErogs(i+1) 替换为 RetrieveErogs($(this).text())

或者,尝试使用闭包:

   (function(x){
$("#e" + x).dxButton({
text: (1+x),
onClick: function () {
RetrieveErogs(1 + x);
},
...
});
})(i);

关于javascript - JS创建带有点击事件未接来电参数的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53004051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com