2012-01-18 33 views
5

Về cơ bản tôi muốn bao bọc một số nội dung trên trang của mình trong div.Bao bọc nội dung trong Div bằng javascript mà không cần iframe làm mới

Tôi có thể làm điều này bằng cách sử dụng hàm bọc trong jQuery nhưng vấn đề của tôi là tôi có một vài iframe trong nội dung chứa quảng cáo và khi bạn quấn nội dung, nó làm mới các iframe.

Từ những gì tôi có thể nói điều này là do đằng sau hậu trường, nó nhân bản nội dung được gói vào div mới.

html

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

js

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

Lý tưởng nhất là tôi muốn chỉ khe trong một số thẻ div mở trước div nội dung và một vài gần thẻ div sau đó nhưng tôi không thể dường như thêm bất kỳ div nào vào trang mà không cần thêm thẻ đóng.

Có ai biết cách nào giải quyết vấn đề này không?

Cheers

+0

có thể trùng lặp, mặc dù không có câu trả lời được chấp nhận: http://stackoverflow.com/questions/4397270/jquery-wrap-without-refresh Ngoài ra, đây là một lỗi được báo cáo. Xuất hiện vấn đề với Firefox: http://bugs.jquery.com/ticket/7020 – JSuar

Trả lời

2

Thay vì loại bỏ các html hoặc thực hiện một bản sao của nó, nhìn thấy nếu bạn có thể nhận được kết quả mong muốn sử dụng cửa sổ mới của jQuery() này cũng sẽ cho phép bất cứ sự kiện mà bạn đã liên kết với yếu tố này và con của nó vẫn chức năng sau đó. Nó có thể đủ để bảo vệ đối tượng iFrame thay vì tiêu diệt nó.

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

Hãy cho tôi biết nếu điều đó giúp :)

+0

Điều đó thực sự kỳ lạ, có vẻ như hoạt động hoàn hảo khoảng 80% thời gian và sau đó tôi nhận được một chút của hành vi kỳ lạ 20% khác nhưng điều đó có thể giảm xuống thiết lập trang của tôi. Cảm ơn – Marklar

0

Tôi nghĩ wrap nội bộ sử dụng html phương pháp để thiết lập đánh dấu vào trôi qua trong bao bì vì trong đó iframe được làm mới. Nếu bạn sử dụng phương thức append, nó sẽ không làm mới iframe vì nó sẽ chỉ di chuyển phần tử từ vị trí này sang vị trí khác. Hãy thử tạo contianer tuyệt vời của bạn và sau đó nối thêm div content bên trong vùng chứa này.

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

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

cùng một vấn đề với chức năng nối thêm – Marklar

Các vấn đề liên quan