Javascript jquery在动态创建的按钮上第二次不工作
我有一个jquery函数,可以打开对话框,编辑对话框,并在按下按钮时将值发送回表(在html页面中)。这些按钮是在JavaScript中动态创建的 场景1:假设我第一次创建了3个按钮,然后单击这三个按钮中的任意一个,然后jquery执行以打开对话框,读取值并将它们发送到html表行 场景2:现在,当我第二次添加更多按钮时,比如说在同一页面中添加2-第4和第5个按钮,然后在按下这些按钮(第4或第5个)时,对话框打开,从用户处读取值,但无法将其发送回html表行 如何解决这个问题 Jquery代码:Javascript jquery在动态创建的按钮上第二次不工作,javascript,jquery,html,Javascript,Jquery,Html,我有一个jquery函数,可以打开对话框,编辑对话框,并在按下按钮时将值发送回表(在html页面中)。这些按钮是在JavaScript中动态创建的 场景1:假设我第一次创建了3个按钮,然后单击这三个按钮中的任意一个,然后jquery执行以打开对话框,读取值并将它们发送到html表行 场景2:现在,当我第二次添加更多按钮时,比如说在同一页面中添加2-第4和第5个按钮,然后在按下这些按钮(第4或第5个)时,对话框打开,从用户处读取值,但无法将其发送回html表行 如何解决这个问题 Jquery代码:
$(document).on('click', "#opener", function () {
pkg = ($(this).attr('name'));
$("#dialog").dialog("open");
$("#dialog").fadeOut(3000).html(data);
});
用于填充表行的函数(要填充的行号作为pkg从js传递)
错误表示未传递第四个或第五个按钮的包装值
动态创建按钮的js函数:
var cell6 = row.insertCell(5);
var element5 = document.createElement("input");
element5.type = "button";
element5.setAttribute('id', 'opener');
element5.setAttribute('name', (rowCount+1));
element5.value = 'X';
cell6.appendChild(element5);
可以使用属性
“class”
而不是“id”
动态创建按钮并将其绑定到事件
另外,请确保您正在重新加载
JavaScript
以及页面的重新加载部分您可以在单击时控制台记录“pkg”并检查一次吗?@Aditya pkg是我通过JavaScript传递的名称值(rowCount+1)。而在jquery中,您可以看到我将其捕获为pkg=($(this.attr('name'));看起来您正在使用相同的id创建多个按钮元素:element5.setAttribute('id','opener')代码>。这似乎与您的代码产生了冲突。。。ID应该是唯一的。也许你可以试试这样的<代码>元素5.setAttribute('id','opener'+(rowCount+1))如果元素应该是唯一的/唯一标识的,则代码>使用类而不是id将不是一个选项
var cell6 = row.insertCell(5);
var element5 = document.createElement("input");
element5.type = "button";
element5.setAttribute('id', 'opener');
element5.setAttribute('name', (rowCount+1));
element5.value = 'X';
cell6.appendChild(element5);