2017-08-23 55 views
0

我加入一個按鈕,動態地根據DIV存在,所以我有這樣的:點擊不會按鈕添加工作動態

function addVideoButton(id) { 
    var div = document.createElement('div'); 
    div.className = 'video'; 
    div.dataset.videoid = id; 
    div.dataset.params =  "modestbranding=1&am;showinfo=0&vq=720&color=white&theme=light&fs=1" 
    div.innerHTML = '<button class="play c-btn"><use xlink:href="#play"></use>WATCH VIDEO</button>'; 
    var title = findTitle(); 
    document.getElementById(title).appendChild(div); 
} 

另外,我有下面的一塊,所以當這些類型的按鈕是點擊,一個參數是拍攝(視頻ID),然後視頻是在一個模式發揮

// show frame for the video modal 
    $(this).find('.play').on("click", function() { 
     showFrame(getIframe(videoId, params), "video"); 
    }); 

不過,我注意到,如果我動態添加按鈕如上,然後單擊事件綁定將無法正常工作,如果我點擊了,它不會啓動模式,我錯過了什麼?

+0

使用vanilla JS,只需在addVideoButton函數內添加事件監聽器 –

回答

0

請使用下面的代碼將點擊綁定到動態添加的容器。 DOM中未來的任何元素應該像下面那樣綁定到事件。

$("body").on("click",".play", function() { 
     showFrame(getIframe(videoId, params), "video"); 
    }); 
+0

試過但沒有工作,而且,如果我在同一頁上有不同的按鈕怎麼辦? –

+0

奇怪,如果它不工作嘗試$(document).on(「click」,...... –

0

您需要將事件添加到按鈕的父元素之一,該元素是在文檔加載時出現的。事件冒起來,將被抓住。在你的情況下,你的整個<div>是動態添加的,所以添加一個事件處理程序到這個<div>的直接父母應該工作。