javascript
  • jquery
  • framework7
  • 2017-02-16 70 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 
    }); 
    

     相關問題

    • 暫無相關問題^_^