2012-03-03 4 views
0

В Chrome/Safari видео Vimeo продолжает воспроизводиться в фоновом режиме после закрытия лайтбокса. На этом этапе «отключение» работает, чтобы остановить видео, но когда вы закрываете лайтбоксы и щелкаете мышью по элементу меню, чтобы повторно открыть видео, видео-div пуст. Я попытался «клонировать» и «добавить» и не могу вернуть видео.jQuery detach div, append div

Функция сайта: Нажмите «a» «b» «c», и лайтбокс появится с видео. Нажмите «X» в лайтбокс, а содержимое лайтбокса закрывается.

HTML/CSS 
    a id="alphaa" <------ The a, b, c menu item, when clicked, open the lightbox 
    .abcbox_content <------- The div that holds all the content for the lightbox 
    #videowrapper <------ div that holds the Vimeo iframe 
    .abc-align-right <---- the "X" to close the lightbox 

и вот jQuery, который у меня есть до сих пор.

<script type="text/javascript"> 
    $(document).ready(function(){ 
    $(".abc-align-right").click(function() { 
    $("#videowrapper").clone(true); 
    $("#videowrapper").contents().detach(); 
    if ($(".abcbox_content").is(':visible')) 
    $("#videowrapper").append(); 
    }); }); 
    </script> 

Спасибо за любую помощь

ответ

0

Это выглядит как вы клонировать элемент, но не с помощью клона. Попробуйте следующее:

<script type="text/javascript"> 
    $(document).ready(function(){ 
    $(".abc-align-right").click(function() { 

     $("#videowrapper").replaceWith($("#videowrapper").clone(true)); 

    }); 
    </script> 
+0

Спасибо за ваш ответ. Это показывает видео, но помещает видео под текстовым блоком, в самом низу. Возможно, ссылаясь на неправильный div? – Andrea

+0

Может быть. Вы можете попробовать что-то вроде '$ (" # videowrapper "). ReplaceWith ($ (" # videowrapper "). Clone (true));' – Malk

+0

Я действительно не знаю, нужны ли все остальные вещи. Просто замените элементы и назовите это хорошо. Я отредактировал свой ответ. – Malk

0

Вы также можете использовать API-интерфейс Vimeo Javascript для приостановки и приостановки видео.

См: http://vimeo.com/api/docs/player-js

Вы должны были бы назначить идентификатор для фрейма, а затем что-то вроде:

$(".abc-align-right").click(function() { 
    $("#iframe_id").postMessage({ "method": "pause" }); 
}); 

И всякий раз, когда вы делаете Lightbox появляются вызов:

$("#iframe_id").postMessage({ "method": "play" }); 

Поскольку вам нужно, чтобы работать на 3 видео на одной странице, вы также можете использовать класс для iframe или отдельных идентификаторов.

+0

Да, я видел это, но они потеряли меня после добавления «api = 1» к URL-адресу – Andrea

+0

Спасибо за сообщение. Я сделаю это. – Andrea

 Смежные вопросы

  • Нет связанных вопросов^_^