Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击“在动态创建的元素jQuery上未按预期工作”_Javascript_Jquery_Html - Fatal编程技术网

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事件委派,您需要将事件处理委派给最近的静态父级。