javascript
  • jquery
  • framework7
  • 2017-02-16 68 views 0 likes 
    0

    我有click事件的问题:Click事件不能正常工作

    我在HTML:

    <div class="content-block cards-clipboard"> 
             <a class="download-all">Download All</a> 
    
             </div> 
    

    并有JS:

    var html = '<div class="card demo-card-header-pic data-url='+img+'">'+ 
        '<div style="background-image:url('+thumb+'); background-size: 100%; height: 272px; background-repeat: no-repeat;" valign="bottom" class="card-header color-white no-border">'+html_icone_camera+'</div>'+ 
        '<div class="card-content">'+ 
        '<div class="card-content-inner">'+ 
        '<p class="color-gray">Postado em '+datapub+'</p>'+ 
         '<p>'+legenda+'</p>'+ 
        '</div>'+ 
        '</div>'+ 
        '<div class="card-footer-'+id_link+'">'+ 
        '<button data-url='+img+' data-step="download" data-cod='+id_link+' type="button" class="download-imagem btn btn-primary btn-lg btn-block '+id_link+'"><i class="fa fa-download" aria-hidden="true"></i>&nbspDownload</button>'+ 
        '</div>'+ 
    '</div>'; 
    
    $$(html).appendTo('.cards-clipboard'); 
    

    和触发:

    $$('.download-all').on('click', function() { 
           $$("button[data-step='download']").click(); 
    
          }); 
    

    即:我有一个按钮('.download-所有'),点击触发通过append(var html)具有data-step = download属性的其他按钮产生的点击。

    然而,当我在。下载,所有的按钮点击,在第一按钮没人点击 - 只有第一个按钮 - 人,收到....

    我感谢所有帮助

    编辑:如果我在控制台把$$("button[data-step='download']").click();,则点击次数可以在所有按钮罚款....

    +0

    您可以在完成附加到'.cards-clipboard'后添加生成的html吗? – jonofan

    +0

    删除下载。它应该是'$$(“按钮[data-step = download]”)。click();' –

    +0

    @MarceloMyara仍然不工作:( –

    回答

    1

    如果您正在使用jQuery,除去2个$迹象,只有一个:

    $(html).appendTo('.cards-clipboard'); 
    

    以及活动的命令是:

    $('.download-all').on('click', function() { 
          $("button[data-step='download']").trigger('click'); 
    
         }); 
    
    +0

    jQuery中'$$'和'$'没有区别。但我会建议一个,因为它是“标准”。 – FibreChips

    +0

    我正在使用Framework7 ...双$$是必需的... –

    +0

    我从来没有说过有区别,但它会使代码更混乱。 – AHBagheri

    1

    尝试使用jQuery trigger()

    $$('.download-all').on('click', function() { 
          $$("button[data-step='download']").trigger("click"); 
    
    }); 
    

    如果不尝试删除双美元符号,并使用单独的美元符号。

    请投票并标记解决方案是否有用。

    谢谢!

    +0

    trigger(“click”)给我相同的结果:( –

    0

    只有第一个按钮由于页面加载顺序而被触发。 PHP在html/javascript之前执行。因为发生这种情况,事件处理程序无法找到具有指定的id或class的按钮。避免这种情况的一种方法是将事件监听器委托给包含动态创建的按钮的区域。例如,

    $('#myId').delegate('button','click',function() { 
         //do something 
    }); 
    

     相关问题

    • 暂无相关问题^_^