Javascript 如何在动态附加的内部元素上附加单击事件?

Javascript 如何在动态附加的内部元素上附加单击事件?,javascript,jquery,Javascript,Jquery,我有一个系列div元素附加到父div。 在父元素上附加click事件绑定 var元素=; 对于var j=0;j

我有一个系列div元素附加到父div。 在父元素上附加click事件绑定

var元素=; 对于var j=0;j<10;j++{ 元素=元素++j+; } $.wrapper.appendfunction{ 返回$element.clickfoo; }; 函数foo{ 元素的索引为:; } 可以在循环内部追加。将foo包装在包装器中,并将其传递给click

var元素=; 常量包装器=$.wrapper; forlet j=0;j<10;j++{ 元素=j; wrapper.appendfunction{ 返回$element.click=>fooj; }; } 函数索引{ 元素的索引为:+index; } 可以在循环内部追加。将foo包装在包装器中,并将其传递给click

var元素=; 常量包装器=$.wrapper; forlet j=0;j<10;j++{ 元素=j; wrapper.appendfunction{ 返回$element.click=>fooj; }; } 函数索引{ 元素的索引为:+index; }
您可以在每次迭代中附加事件,而不是在迭代结束时附加事件

对于设j=0;j<10;j++{ 常量元素=$j; element.click=>fooj; $.wrapper.appendelement; } 函数索引{ 元素的索引为:+index; }
您可以在每次迭代中附加事件,而不是在迭代结束时附加事件

对于设j=0;j<10;j++{ 常量元素=$j; element.click=>fooj; $.wrapper.appendelement; } 函数索引{ 元素的索引为:+index; } 您可以使用匿名函数将此对象传递给该函数,以便使用查找位置:

var元素=; 对于var j=0;j<10;j++{ 元素=元素++j+; } $.wrapper.appendfunction{ 返回$element.clickfunction{foothis}; }; 函数foel{ 元素的console.logindex为:,$el.text+'at index'+$el.index; } 您可以使用匿名函数将此对象传递给该函数,以便使用查找位置:

var元素=; 对于var j=0;j<10;j++{ 元素=元素++j+; } $.wrapper.appendfunction{ 返回$element.clickfunction{foothis}; }; 函数foel{ 元素的console.logindex为:,$el.text+'at index'+$el.index; } 你可以使用这个方法

var元素=; 对于var j=0;j<10;j++{ 元素=元素+j; } $.wrapper.appendfunction{ 返回$element.clickfoo; }; 函数foo{ 元素的alertindex为:+$this.index; } 你可以使用这个方法

var元素=; 对于var j=0;j<10;j++{ 元素=元素+j; } $.wrapper.appendfunction{ 返回$element.clickfoo; }; 函数foo{ 元素的alertindex为:+$this.index; }
要获取对引发事件的元素的引用,请在事件处理程序中使用this关键字。要检索其索引,可以使用jQuery的index方法

还请注意,通过在一个操作中附加所有HTML并使用单个委托事件处理程序,可以使逻辑更加简洁。试试这个:

var元素=新数组10。填入“j”; $.wrapper.appendelements.on'click','.aClass',函数{ console.log`元素的索引是:${$this.index}`; };
要获取对引发事件的元素的引用,请在事件处理程序中使用this关键字。要检索其索引,可以使用jQuery的index方法

还请注意,通过在一个操作中附加所有HTML并使用单个委托事件处理程序,可以使逻辑更加简洁。试试这个:

var元素=新数组10。填入“j”; $.wrapper.appendelements.on'click','.aClass',函数{ console.log`元素的索引是:${$this.index}`; };
如果您正在使用jquery,并且希望将一组s附加到包装器,并在每个包装器上都有一个click事件,而不是为每个s创建一个全新的事件,我将使用事件委派并将事件附加到父$'.wrapper',然后在子项中捕获事件。应该是这样的

for (var j = 0; j < 10; j++) {
    $('.wrapper').append($(`<div class="aClass">${ j }</div>`));
}

$('.wrapper').on('click', function(e) {
    const target = $(e.target);

    if (target.hasClass('aClass')) {
        console.log(target.index());
    }
});

如果您正在使用jquery,并且希望将一组s附加到包装器,并在每个包装器上都有一个click事件,而不是为每个s创建一个全新的事件,我将使用事件委派并将事件附加到父$'.wrapper',然后在子项中捕获事件。应该是这样的

for (var j = 0; j < 10; j++) {
    $('.wrapper').append($(`<div class="aClass">${ j }</div>`));
}

$('.wrapper').on('click', function(e) {
    const target = $(e.target);

    if (target.hasClass('aClass')) {
        console.log(target.index());
    }
});
var元素=; 对于var j=0;j<10;j++{ 元素=元素+j; } $.wrapper.appendfunction{ 返回$element.clickfoo; }; 函数foo{ 元素的alertindex为:+$this.text+-+$this.index; } var元素=; 对于var j=0;j<10;j++{ 元素=元素+j; } $.wrapper.appendfunction{ 返回$element.clickfoo; }; 函数foo{ 元素的alertindex为:+$this.text+-+$this.index; }
事实上,我还没见过有人使用这种填充方法。实际上,我以前从未见过它,我每天都为工作而编写jQuery。我肯定会调查的,因为它看起来相当有效。使用事件委派绝对是一种方法,而不是为每个新的div创建新的事件,我实际上没有看到任何人使用这种方法
od。实际上,我以前从未见过它,我每天都为工作而编写jQuery。我肯定会调查的,因为它看起来相当有效。使用事件委派绝对是一种方法,而不是为每个新部门创建新事件。我想你误解了这个问题。问题不是更改元素的文本,然后再访问它。如果OP不希望文本为0,1,2。。。在问题中,文本是j,我想你误解了这个问题。问题不是更改元素的文本,然后再访问它。如果OP不希望文本为0,1,2。。。在这个问题上,文本代表所有人。