2014-10-02 78 views
0

我有一個小腳本,它將一個vimeo視頻加載到div onclick中,然後是一個「應該」將它移除的按鈕。不用說我也不會在這裏發貼,如果它是工作,如果我沒有發現已經在別處堆棧工作液所以...在這裏我的代碼:jquery刪除vimeo iframe

$('.play_button').click(function() { 
    $(".play_border, .styled-header").remove(); 
    $(".video-container").append('<iframe id="vimeo" src="//player.vimeo.com/video/103277178?autoplay=1" width="100%" height="306" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe><div class="form-transparent"><button class="btn pull-right close_video" type="button">Close Video</button>'); 
}); 
$('.close_video').click(function() { 
    $("#vimeo").remove(); 
    $(".video-container").append('<div class="play_border"><div class="play_button"></div></div><h2 class="white styled-header">Play Our Video</h2>'); 
}); 

和HTML:

<div class="video-container"> 
    <div class="play_border"> 
     <div class="play_button"></div> 
    </div> 
    <h2 class="white styled-header">Play Our Video</h2> 
</div> 
+0

我做了一個基本的演示給你 - 您需要將按鈕放在波紋管中,需要一些工作,但是工作正常 - http://jsfiddle.net/cyehoyp1/ – Tasos 2014-10-02 22:13:57

回答

0

正如beaglebets監聽器不點火,因爲你試圖將它添加到close_video存在之前提到的。你可以做到這一點,而不是這樣:

function show_video() { 
    $(".play_border, .styled-header").remove(); 
    $(".video-container").append('<iframe id="vimeo" src="//player.vimeo.com/video/103277178?autoplay=1" width="100%" height="306" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe><div class="form-transparent"><button class="btn pull-right close_video" type="button">Close Video</button>'); 
    $(".close_video").click(hide_video); 
} 

function hide_video() { 
    $("#vimeo, .close_video").remove(); 
    $(".video-container").append('<h2 class="white styled-header">Play Our Video</h2><div class="play_border"><button class="btn play_button" type="button">Play</button></div>'); 
    $(".play_button").click(show_video); 
} 

$(".play_button").click(show_video); 

http://jsfiddle.net/L5jcLLxz/

(我稍微改變你的HTML代碼,這樣實際上有東西點擊play_button。)

+0

@TENDesign不客氣。如果您爲close_video和play_button使用事件委派,您也可以按照beaglebets建議的方式執行此操作:http://jsfiddle.net/q18455wL/ – 2014-10-02 23:15:59

0

您的監聽器未觸發,因爲您在close_video附加到頁面之前正在監聽它。由於您將其添加到頁面中,您將需要使用事件委派。

$('.video-container').on('click', '.close_video', function() { 
    $("#vimeo").remove(); 
    $(".video-container").append('<div class="play_border"><div class="play_button"></div> </div><h2 class="white styled-header">Play Our Video</h2>'); 
}); 
+0

這很有道理,但它仍然不能正常工作。我有點認爲這是發生了什麼事。 – 2014-10-02 22:00:34

+0

如果你複製並粘貼它可能是由於close_video有一個下劃線而不是短劃線。我輸錯了。 – beaglebets 2014-10-02 22:05:26