Очистка содержимого модального окна (js)

P
На сайте с 06.03.2010
Offline
54
3675

Всем привет. Тема про JS. Тут недавно поднималась тема по поводу видео во всплывающем окне (да даже взять спойлер, суть не меняется). Так вот к примеру есть 5 спойлеров (или всплывающих окон), в каждом из них есть плеер. В мозиле (именно в мозиле) при закрытии спойлера (или окна) - звук видео продолжает идти.

Понятно, что скрипт просто делает его невидимым (display: none;), но не очищает содержимое окна. Так вот и сам вопрос - как сделать так, чтоб во время каждого закрытия спойлера его содержимое очищалось (типа $.remove ( ) или html(' ') ), а при новом открытии чтоб снова появлялось. У меня получается так, что если remove, то при новом его открытии оно не появляется заново. В общем как бы это исправить, кто знает? Конкретный код JS не привожу, так как это относится почти к любой подобной схеме. Но могу и привести конкретный код. Сама соль в том, что надо сделать типа "сброс" содержимого при закрытии / открытии спойлера, чтоб и плеер сбрасывался.

дани мапов
На сайте с 06.09.2012
Offline
204
#1

Какой плейер используется? Тут только посылать команду "стоп".

Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
RiDDi
На сайте с 06.06.2010
Offline
285
#2

Ну в идеале почти каждый плеер имеет управление через JS. Надо узнать как останавливать Ваш плеер и, собственно, останавливать.

Как вариант сохраняйте объект ($.clone()) или тупо код ($.html()) в переменную и удаляйте элемент ($.remove()) или очищайте ($.html('')). А при открытии доставайте из переменной.

А вообще хранить готовые модальные окна в странице не очень хорошо. Создавайте окно при открытии и удаляйте при закрытии.

Вебмастер отдыхает на бережках морей. Заработок в интернете - дело техники.
P
На сайте с 06.03.2010
Offline
54
#3

Плеер - Embed от любого видеохостинга. Вообще, вот если самый элементарный пример:

HTML:

<div class="text">Посмотреть</div>

<div class="player">

EMBED-КОД ПЛЕЕРА

</div>

JS:

$('.text').click(

function() {

$(this).next('.player').slideToggle();

});

Т.е. при нажатии на "Посмотреть" открывается спойлер с плеером. Попробуйте это сделать кто-нибудь у себя на сайте и в МОЗИЛЕ будет видно, как после закрытия спойлера - видео продолжает идти. В Гугле сбрасывается как надо. Подскажите пожалуйста что и куда нужно добавить в этом js коде, чтоб содержимое очищалось и плеер останавливался. Но чтоб при новом открытии снова появлялся.

---------- Добавлено 10.04.2013 в 13:47 ----------

RiDDi:
Ну в идеале почти каждый плеер имеет управление через JS. Надо узнать как останавливать Ваш плеер и, собственно, останавливать.

Как вариант сохраняйте объект ($.clone()) или тупо код ($.html()) в переменную и удаляйте элемент ($.remove()) или очищайте ($.html('')). А при открытии доставайте из переменной.

А вообще хранить готовые модальные окна в странице не очень хорошо. Создавайте окно при открытии и удаляйте при закрытии.

Я в JS разбираюсь пока только на примитивном уровне, не могли бы вы в коде выше это подредактировать? :)

RiDDi
На сайте с 06.06.2010
Offline
285
#4

ну типа


var c = {};
$(".player").each(function(i){
$(this).attr('id', 'id'+i)
})
$(".text").click(function() {
var t = $(this).next(), o = t.children(), i = t.attr("id"), a = t.css("display")=="none";
if(a && c) t.append(c);
t.slideToggle("slow", function(){
if(!a)
{
if(!c) c = o.clone();
o.remove();
}
});
});

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий