[英]How do I execute an event using jQuery through an html object(button) created through Javascript?
我只是新来的。 因此,这就是我遇到的问题:
我使用javascript创建了一个html表。 我有一个按钮,单击该按钮会创建一组结构完全相同的表,但是这些表中的对象(例如按钮,文本)具有不同的ID。 现在,当我尝试使用jQuery并在其中一个生成的表上使用按钮来执行click函数时,它将无法正常工作。 我怎么在这里转转? 提前致谢!
这是一个示例函数,可在javascript中创建html表(具有唯一ID):
function CreateTables() {
var html = ' ';
var valPrompt = prompt("How many tables would you like to add?");
parseInt(valPrompt);
for (i = 1; i <= valPrompt; i++) {
html += "<table>" + "<tr>" + "<td>" + "Text goes here" + "</td>" + "<td>" + "<input type='text' id='txtTEXT" + i + "'/>" + "</td>" + "<td>" + < input type = 'button'
id = 'btnALERT" + i + "' / > +"</td>" + "</tr>" + "</table>"
}
document.getElementById('HtmlPlaceHolder').innerHTML = html;
}
因此,如果我们查看代码,如果执行CreateTables函数,则会创建带有唯一ID的带有按钮的表集(btnALERT)。 为了选择对象,我想我将使用jQuery。 因此,例如,如果我在btnALERT1(由CreateTables生产)中绑定处理程序,则说一个单击功能以提醒一个简单的“ Hello”,我该怎么做? 我的代码似乎不起作用:
$(document).ready(function() {
$('#btnALERT1').click(function() {
alert("Hello");
});
});
我认为您可能想使用.on()
方法:
$(document).ready(function() {
$('#btnALERT1').on('click', function() {
alert("Hello");
});
});
有关更多信息,请查看在线文档: http : //api.jquery.com/on/
您必须在创建表后附加事件处理程序,而不是在文档准备就绪时附加事件处理程序(由于用户正在与之交互,因此文档应该准备就绪)。
当然,您可以使用jQuery来做到这一点,但请看一下本机方法-jQuery可能过于肿,具体取决于您要执行的操作,并且您将学到一些有关DOM的知识。
我在下面添加了一些代码,使您可以添加回调并显示一些可以轻松取回的内容。 这并不是您所要的,而是在DOM中找到自己的出路的一个很好的开始。
function CreateTables() {
var html = ' ';
var valPrompt = prompt("How many tables would you like to add?");
parseInt(valPrompt);
for (i = 1; i <= valPrompt; i++) {
html += "<table>" + "<tr>" + "<td>" + "Text goes here" + "</td>" + "<td>" + "<input type='text' id='txtTEXT" + i + "'/>" + "</td>" + "<td>" + < input type = 'button'
id = 'btnALERT" + i + "' / > +"</td>" + "</tr>" + "</table>"
}
var placeholder = document.getElementById('HtmlPlaceHolder').innerHTML = html;
placeholder.innerHTML = html;
placeholder.addEventListener('click', function (e) {
console.log(this, e);
}
}
我会在HtmlPlaceHolder上使用委托来检查单击事件,如下所示:
$("#HtmlPlaceHolder").on("click", "input[type=button]", function() {
alert($(this).attr("id"));
});
另外,我将按钮id方案更改为btnALERT_1,因此您可以使用.split("_")
方法提取ID号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.