gpt4 book ai didi

javascript - 在动态创建的元素上单击时无法按预期工作 jQuery

转载 作者:行者123 更新时间:2023-11-28 18:09:28 25 4
gpt4 key购买 nike

我有一个标签,单击时会提醒该标签的数据值。它工作正常,但当我单击动态创建的元素时不起作用。

<img id="no_p_fav" src="http://localhost:8000/icons/non_star.png">

下面是我如何创建动态元素

 $('.all_candidate_bar').prepend('<div id = "icons"> <a class = "favorite" data-value = "'+data.msg.id+'" > <img id = "no_p_fav" src="{{url("/icons/non_star.png")}}" ></img></a></div>');

下面的函数不适用于动态创建的元素,但适用于加载页面时存在的元素。

$(document).ready(function(){

$('.favorite').on('click',function(){
var candidate_id = $(this).data('value');
alert(candidate_id);
});
});

这个我也试过

 $('#icons').on('click','a.favorite',function(){//myFunction});
$('a').on('click','.favorite',function(){//myFunction});

如何使其适用于动态和静态元素?

最佳答案

由于 #icon 也是动态创建的,因此您无法对其使用事件委托(delegate),因此您需要一个从一开始就存在的更高级别元素,例如 body:

$('body').on('click','.favorite',function(){//myFunction});

a 也不起作用,因为在这种情况下事件没有被委托(delegate),它正在访问元素本身

$('a').on('click','.favorite',function(){//myFunction}); // won't work

关于javascript - 在动态创建的元素上单击时无法按预期工作 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41930190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com