我正在尝试使用新属性来添加要素。

的HTML

<div class="element">Element1</div>


该脚本是

$('.element').one("click", function()
{
    $.getScript('/script.js');
});

$('#activated').click(function()
{
    alert(1);
});


在script.js文件中:

$('.element').attr("id", "activated");


script.js将ID #activated的ID添加到div中,但是.click()无法使用新ID。

有人可以告诉我为什么吗?

最佳答案

$('#activated')是在任何元素具有该ID之前进行求值的,因此它找不到任何元素,并且没有任何单击处理程序附加到任何元素。

您可以使用事件委托来解决此问题。单击处理程序将立即附加到文档主体,但是只有在目标元素与“ #activated”选择器匹配时,它才会触发其回调:

$(document.body).on('click', '#activated', function()
{
    alert(1);
});

07-25 23:03