Javascript 选择动态创建并侦听2个或更多事件的元素
在我正在编写的代码中,我有一个动态创建的div,带有一个输入框和一个按钮。当它们的事件发生时,它们具有类似的功能。但也有一些小的区别。例如,如果单击按钮,则查找作为输入值的同级值,然后删除div并替换包含新输入的div和按钮。但是如果用户按enter键查找$(this).val(),并对div执行相同的操作,则函数类似。我想将这些事件处理程序组合到发生的适当事件中 我想做这样的事情Javascript 选择动态创建并侦听2个或更多事件的元素,javascript,jquery,html,javascript-events,Javascript,Jquery,Html,Javascript Events,在我正在编写的代码中,我有一个动态创建的div,带有一个输入框和一个按钮。当它们的事件发生时,它们具有类似的功能。但也有一些小的区别。例如,如果单击按钮,则查找作为输入值的同级值,然后删除div并替换包含新输入的div和按钮。但是如果用户按enter键查找$(this).val(),并对div执行相同的操作,则函数类似。我想将这些事件处理程序组合到发生的适当事件中 我想做这样的事情 $(“body”)。在('click keypress','button input',函数(e){ 我需要on(
$(“body”)。在('click keypress','button input',函数(e){
我需要on()中的第二个参数,因为按钮和输入是动态创建的
如果我做了下面的事情,我认为事件处理程序不会附加到新创建的元素
$(document).ready(function() {
var counter = 0
function giveNew(el, i) {
$(el).remove()
$("body").append("<button class='go" + " " + i + "' >Go</button>")
}
$("body button, body input").on('click keypress', function(e) {
counter++;
var target = $(e.target);
if (target.is('button')) {
for (var i = 0; i < counter; i++) {
giveNew(this, i)
}
console.log($(this).attr("class"))
} else if (target.is('input')) {
if (e.which == 13) {
alert("input");
}
}
})
});
$(文档).ready(函数(){
变量计数器=0
新功能(el,i){
$(el).删除()
$(“正文”)。附加(“Go”)
}
$(“正文按钮,正文输入”)。在('点击按键',功能(e){
计数器++;
var目标=$(e.target);
if(target.is('button')){
对于(变量i=0;i
html:
Go
在元素之间添加逗号以绑定元素上的事件
我建议您向所有目标元素添加一个类,并使用该类绑定事件
Javascript:
$(document.body).on('click keypress', '.myClass', function(e) {
Html:
去
谢谢你的回答。这个逗号是缺少的部分。我很好奇你为什么会建议添加类。提醒我。我打算在我的代码中添加一个类,比如。输入或。按钮,而不使用html元素。为什么选择类而不是元素更好?@user2537537因为会有be 100输入
和按钮
,但是只有很少的兴趣。使用普通类
只会选择感兴趣的元素。而且,类
选择器比元素
选择器更快。
$("body").on('click keypress' ,'button, input', function(e) {
$(document.body).on('click keypress', '.myClass', function(e) {
<input class ="input myClass" />
<button class="go myClass">Go</button>