Javascript 单击“在动态创建的元素jQuery上未按预期工作”
单击时,我有一个标记提醒标记的数据值。它工作得很好,但当我单击动态创建的元素时就不起作用了Javascript 单击“在动态创建的元素jQuery上未按预期工作”,javascript,jquery,html,Javascript,Jquery,Html,单击时,我有一个标记提醒标记的数据值。它工作得很好,但当我单击动态创建的元素时就不起作用了 <img id="no_p_fav" src="http://localhost:8000/icons/non_star.png"> 我也试过这个 $('#icons').on('click','a.favorite',function(){//myFunction}); $('a').on('click','.favorite',function(){//myFunction});
<img id="no_p_fav" src="http://localhost:8000/icons/non_star.png">
我也试过这个
$('#icons').on('click','a.favorite',function(){//myFunction});
$('a').on('click','.favorite',function(){//myFunction});
如何使其适用于动态和静态元素的元素?请尝试以下代码:
$(document).ready(function(){
$(document).on('click','.favorite',function(){
var candidate_id = $(this).data('value');
alert(candidate_id);
});
});
请尝试以下代码:
$(document).ready(function(){
$(document).on('click','.favorite',function(){
var candidate_id = $(this).data('value');
alert(candidate_id);
});
});
对于动态创建的元素,您需要委托事件 $(文档).ready(函数(){
对于动态创建的元素,您需要委托事件 $(文档).ready(函数(){ 由于
#图标
也是动态创建的,因此您不能对其使用事件委派,您需要一个从一开始就存在的更高级别元素,主体
,例如:
$('body').on('click','.favorite',function(){//myFunction});
a
也不起作用,因为在这种情况下事件没有被委派,它正在访问元素本身
$('a').on('click','.favorite',function(){//myFunction}); // won't work
由于#图标
也是动态创建的,因此您不能对其使用事件委派,您需要一个从一开始就存在的更高级别元素,主体
,例如:
$('body').on('click','.favorite',function(){//myFunction});
a
也不起作用,因为在这种情况下事件没有被委派,它正在访问元素本身
$('a').on('click','.favorite',function(){//myFunction}); // won't work
这样改变你的功能
$(function(){
$(document).on('click','.favorite',function(){
var candidate_id = $(this).data('value');
alert(candidate_id);
});
这样改变你的功能
$(function(){
$(document).on('click','.favorite',function(){
var candidate_id = $(this).data('value');
alert(candidate_id);
});
'a.favorite'
=>'a.favorite'
。前者将选择锚点内具有类favorite
的元素。这是一个打字错误,在本例中是的。当我单击它时,只有一个元素有效。其余元素无效。Google事件委派,您需要将事件处理委派给最近的静态父级。'a.favorite'
=>'a.favorite'
。前者将选择在锚点中包含类favorite
的元素。这是一个输入错误,在本例中是的。当我单击它时,只有一个元素起作用。其余元素不起作用。Google事件委派,您需要将事件处理委派给最近的静态父级。