Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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 从ajax添加元素时li操作不起作用_Javascript_Jquery_Html - Fatal编程技术网

Javascript 从ajax添加元素时li操作不起作用

Javascript 从ajax添加元素时li操作不起作用,javascript,jquery,html,Javascript,Jquery,Html,我有这个部门 <div class="foodsSection"> <label> Foods: </label> <ul> <li> roma </li> </ul> </div> 当我按下roma键时,jquery工作正常,但当我按下使用jquery的数据库中的任何li键时,jquery都不工

我有这个部门

<div class="foodsSection">
    <label>
        Foods:
    </label>
    <ul>
        <li>
            roma
        </li>
    </ul>
</div>
当我按下roma键时,jquery工作正常,但当我按下使用jquery的数据库中的任何li键时,jquery都不工作,这是一个jquery,它从数据库中获取数据,但它在li元素中

使用以下命令:

$(".foodsSection ul").on('click', 'li', function(){
在执行绑定时,将计算调用绑定函数的jQuery集。收到事件时,它会检查作为参数传递的选择器。请参阅。

使用此选项:

$(".foodsSection ul").on('click', 'li', function(){
在执行绑定时,将计算调用绑定函数的jQuery集。收到事件时,它会检查作为参数传递的选择器。请参阅。

您必须使用.on而不是.click,因为click方法在已生成的DOM上不起作用

$(".foodsSection li").on("click", 'li' ,function(){
    $(".addressesSection").css("display","block");
});
您必须使用.on而不是.click,因为click方法在已生成的DOM上不起作用

$(".foodsSection li").on("click", 'li' ,function(){
    $(".addressesSection").css("display","block");
});

使用委托事件,如

$(".foodsSection").on("click", "li", function(){
    $(".addressesSection").css("display","block");
});

请特别参阅并阅读有关直接事件和委派事件的部分,该部分解释了代码不起作用的原因,并且此代码确实使用委派事件,如

$(".foodsSection").on("click", "li", function(){
    $(".addressesSection").css("display","block");
});
请特别参阅并阅读有关直接事件和委托事件的部分,该部分解释了您的代码不起作用以及此代码起作用的原因。

解决方案将是

$('.foodsSection').on('click', 'li', function() {
});
代码中的问题是,此时在每个现有的“li”元素上附加侦听器。否则,当您使用.on'click',li',function{}时,您将侦听器附加到父元素,以便它可以处理对其子元素的所有单击,解决方案将是

$('.foodsSection').on('click', 'li', function() {
});

代码中的问题是,此时在每个现有的“li”元素上附加侦听器。否则,当您使用.click、'li'函数时,{}您将侦听器附加到父元素,这样它就可以处理对其子元素的所有单击

是的,您是对的,它可以工作,但您的方式与我的方式不同吗?为什么在我看来,代码只是以静态li元素的形式工作?@MarcoDinatsoli。您使用的click方法不会处理委托的未来创建的气泡事件。在此方法中,与.FoodSection的父项单击的li将触发此事件。是的,你说得对,它可以工作,但你的方式与我的方式不同吗?为什么在我看来,代码只是以静态li元素的形式工作?@MarcoDinatsoli。您使用的click方法不会处理委托的未来创建的气泡事件。在此方法中,与.FoodSection的父项单击的li将触发此事件。+1向您致谢,我将接受您的回答这是链接方法的新方法吗?哦,不。我已更正错误。仅供参考,它不会委派此事件。请看其他答案。编辑:现在,你应该删除第一个li。+1给你,谢谢,我接受你的回答。这是链接方法的一种新方式吗?哦,不。我已经更正了错误。仅供参考,它不代表事件。请看其他答案。编辑:现在,你应该删除第一个李。我不认为它是重复的,因为问题没有在上提到。@dystroy它是如何重复的,请?我不知道这是问题所在我不认为它是重复的,因为问题没有在上提到。@dystroy它是如何重复的,请?我不知道这是问题所在