2012-01-18 7 views
5

Zasadniczo chcę zawinąć niektóre treści na mojej stronie w div.Zawijanie zawartości Div z javascript bez odświeżania iframe

Mogę to zrobić za pomocą funkcji wrap w jQuery, ale moim problemem jest to, że mam kilka elementów iframe w moich treściach, które zawierają reklamy, a po zawinięciu zawartości odświeża ramki iframe.

Z tego, co mogę powiedzieć, to dlatego, że za kulisami klonuje zawartość, która ma zostać opakowana w nowy element div.

html

<div class="content"> 
    <iframe src="http://something.com/ads"></iframe> 
</div> 

js

$(content).wrap('awesome_container');

Idealnie chciałabym tylko szczelina w niektórych otwartych znaczników DIV przed zawartości div i kilku bliskich div tagi później, ale nie mogę wydaje się dodawać dowolne elementy div do strony bez dodawania znaczników zamykających.

Czy ktoś wie o sposobie obejścia tego problemu?

Cheers

+0

Możliwa duplikat, chociaż nie ma akceptowane odpowiedź: http://stackoverflow.com/questions/4397270/jquery-wrap-without-refresh także to jest zgłoszony błąd. Wydaje się być problemem z Firefoksem: http://bugs.jquery.com/ticket/7020 – JSuar

Odpowiedz

2

Zamiast usuwania html lub kopiowaniem go, czy można uzyskać pożądany wynik za pomocą odłączenia jQuery() Pozwoli to również niezależnie od zdarzenia zostały skojarzone z tym elementem i jej dzieci nadal działaj później. Może wystarczyć zachowanie obiektu iFrame zamiast go zabić.

var orphan = $(selector).detach() 
someParent.html(orphan); 

Daj mi znać, czy to pomaga :)

+0

To naprawdę dziwne, wygląda na to, że działa doskonale w 80% przypadków, a potem dostaję trochę dziwne zachowanie pozostałe 20%, ale to może być moja konfiguracja strony. Dzięki – Marklar

0

myślę wrap wewnętrznie używa html sposób ustawić znaczników do przekazany w pojemniku z powodu których iframe jest odświeżany. Jeśli użyjesz metody append, nie odświeżysz iframe, ponieważ po prostu przeniesiesz element z jednej lokalizacji do drugiej. Spróbuj stworzyć swojego wspaniałego contianer, a następnie dołącz do niego div content.

$('.content').before("<div id='awesome_container' />"); 

$('#awesome_container').append($('.content')); 
+0

ten sam problem z funkcją append – Marklar

Powiązane problemy