我正在尝试使用新属性来添加要素。
的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);
});