Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.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工作,但onclick不工作_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 追加jQuery工作,但onclick不工作

Javascript 追加jQuery工作,但onclick不工作,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有producttypes过滤器,它是根据数据库中的条目通过ajax创建的: HTML部分: <ul id="foodtype"></ul> 我希望将复选框的ID推送到包含php代码的页面。但复选框上没有发生任何事情。 注意:当我查看源代码时,代码仍然不正确。。没有显示元素:(您需要使用一种称为事件委派的方法。在复选框所在的容器上侦听单击事件。因此,动态添加它们后,单击事件将冒泡到容器中。这是因为var$checkbox=$(“输入:复选框”);在ajax完成之前执行

我有producttypes过滤器,它是根据数据库中的条目通过ajax创建的:

HTML部分:

<ul id="foodtype"></ul>
我希望将复选框的ID推送到包含php代码的页面。但复选框上没有发生任何事情。
注意:当我查看源代码时,代码仍然不正确。。没有显示
  • 元素:(

    您需要使用一种称为事件委派的方法。在复选框所在的容器上侦听单击事件。因此,动态添加它们后,单击事件将冒泡到容器中。

    这是因为
    var$checkbox=$(“输入:复选框”);
    在ajax完成之前执行,因此没有任何元素

    改为

    $(document).on("change", "input:checkbox", function() {
        var opts = getFilterOptions();
        updateProducts(opts);
    });
    

    它应该可以工作。

    我已经尝试过了,现在ajax调用被触发,但ajax请求中没有添加ID:(@Gags,没有理解你…你的ajax调用有
    数据:'
    你希望如何传递ID?我让它工作了..我让复选框点击
    完成ajax的功能,它现在工作了..谢谢这不是重复的..为什么不投票..pl尝试获取我在这里尝试的逻辑
    
     function getFilterOptions(){
       var opts = [d,de];
       $checkboxes.each(function(){
         if(this.checked){
           opts.push(this.id);
       }
      return opts;
      }
    
      var $checkboxes = $("input:checkbox");
      $checkboxes.on("change", function(){
        var opts = getFilterOptions();
        updateProducts(opts);
    
      });
    
    $(document).on("change", "input:checkbox", function() {
        var opts = getFilterOptions();
        updateProducts(opts);
    });