使用 onClick 从 JavaScript 创建 html 按钮调用一个带有一个参数的方法
creating html button from javascript with onClick call a method with one param
Im create html button from javascript vía ajax.当我按下 html 按钮时,它会调用一个 ajax 函数。如果 ajax 成功,它将获得一个将在 for 循环中使用的数字。循环将启动,在每次迭代中,它将创建一个带有 onclick 属性的 html 按钮,调用相同的方法,但在参数中具有不同的数字。如果我们在第三次迭代中,那么c == 2
和参数将等于 2:
function doAdCashAjax(){
$.ajax({
url : '../controller/ajaxController.php',
type : 'POST',
data : {
action:'getNumber'
},
success : function(data) {
//Creates a button for each campaign
for(var c = 0;c<data;c++){
var btn = document.createElement('input');
btn.setAttribute("id", "Campaign "+c);
btn.type = "button";
btn.setAttribute("value","Campaign "+c);
btn.setAttribute("name",c);
btn.addEventListener('click', function(){
getCampaign(c);
});
document.body.appendChild(btn);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert ('error: ' + textStatus + ' errorThrown: ' + errorThrown);
}
});
}
这是 html 按钮现在调用的方法:
function getCampaign(campIndex){
$.ajax({
url : '../controller/ajaxController.php',
type : 'POST',
data : {
action:'setCampaign',
campIndex:campIndex,
},
success : function(data) {
alert('campaign index: '+campIndex);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert ('error: ' + textStatus + ' errorThrown: ' + errorThrown);
}
});
}
所有按钮都已成功创建,但是当我单击它们时,我得到了一个成功的 ajax,并且无论我按下什么按钮,警报输出始终是 index = 10。我想在这里问如何在函数调用中设置正确的参数,因为我需要从具有不同参数的不同按钮调用函数。
(可选)我想了解为什么getCampaign(campIndex)
输出 10,这是 doAdCashAjax()
中 data
的值。也可以选择但欢迎,当我使用检查器查看动态创建的 html 按钮时,我可以看到 id、类型、值和名称属性,但永远不会看到 onClick 属性。
非常感谢!
这个问题是关于scope
的。所有单击事件处理程序都将采用 c
的最后一个值。你应该这样做:
for(var c = 0 ; c<11; c++)
{
....
makeFunc(btn, c);
....
}
function makeFunc(btn, c)
{
btn.addEventListener('click', function(){
getCampaign(c);
});
}
示例:https://jsbin.com/wecujoburu/edit?js,output
相关文章:
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 如何在只能有一个asp.net表单的主页上从asp.net页面中的javascript中获取值
- 有可能在来自链接的警报中有一个值吗
- 是否<asp:文本框>有一个onFocusLost事件
- 让谷歌数据图表有一个24小时x轴
- PayPal按钮是否有一个简单的选项,其中金额基于一些用户输入
- 我确实有一个表单,如果用户输入了输入,它应该检查否定或空的输入框,并抛出一条警告消息
- 在这个使用hasOwnProperty的对象扩展程序中有一个错误,I'我不确定那个bug是什么,也不确定这个扩展
- 当知道同一hiearch中至少有一个元素时,遍历到元素.结构使用jquery
- PNG图像被覆盖,但每个图像都有一个链接可以更改,每次一个-Javascript/jQuery/CSS
- JQuery是否有一个“;移动“;作用或者有没有一种更紧凑的方法来做到这一点
- Regex或javascript每X个连续单词中有一个单词
- Jquery时间启动计时器,我有一个计时器的代码,但它在页面加载时启动
- 是否有一个javascript库来解析简单的查询
- D3.js:将一个有响应的饼图放在其父分区的中心
- 在一个函数中,我有一个未捕获的语法错误:意外的标记else
- 检查一个元素是否有一个类与另一个类总是返回true
- 我有一个用幻灯片制作的网页,但幻灯片会在屏幕上移动
- 我制作html网站的一小部分——我有一个javascript部分
- 为什么一个有一个文本INPUT的FORM在输入时提交,而一个有两个文本INPUTs的FORM则不提交