2012-01-18 14 views
5

Básicamente quiero envolver un poco de contenido en mi página en un div.Ajustar el contenido en una Div con javascript sin iframe refreshing

Puedo hacer esto usando la función de ajuste en jQuery pero mi problema es que tengo algunos iframes en mi contenido que contienen publicidad y cuando envuelve el contenido, actualiza los iframes.

Por lo que puedo decir es porque detrás de escena está clonando el contenido para ser envuelto en el nuevo div.

html

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

js

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

Idealmente me gustaría simplemente ranura en algunas etiquetas div abiertos antes de la div de contenido y unos pocos cercanos etiquetas div después, pero yo no puedo parece agregar cualquier divs a la página sin agregar etiquetas de cierre.

¿Alguien sabe de una manera de evitar este problema?

Saludos

+0

duplicado posible, aunque no hay una respuesta aceptada: http://stackoverflow.com/questions/4397270/jquery-wrap-without-refresh Además, este es un error reportado Parece ser un problema con Firefox: http://bugs.jquery.com/ticket/7020 – JSuar

Respuesta

2

En lugar de eliminar el html o hacer una copia de la misma, ver si se puede obtener el resultado deseado mediante Separar de jQuery() Esto también permitirá que cualquier evento que usted ha asociado a este elemento y sus hijos todavía función después. Puede ser suficiente para conservar el objeto iFrame en lugar de eliminarlo.

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

Avísame si eso ayuda :)

+0

Eso es realmente extraño, parece funcionar perfectamente el 80% del tiempo y luego me sale un poco de comportamiento extraño el otro 20% pero eso podría deberse a la configuración de mi página. Gracias – Marklar

0

creo wrap utiliza internamente el html método para establecer el margen de beneficio en el pasado en el recipiente debido a lo cual se actualiza iframe. Si usa el método append, no actualizará el iframe porque simplemente moverá el elemento de una ubicación a otra. Intenta crear tu asombroso contianer y luego agrega el div content dentro de este contenedor.

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

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

mismo problema con la función de agregar – Marklar

Cuestiones relacionadas