2010-11-13 1 views
4

Я знаю, что есть способ вызова FancyBox вручную строку HTML, как так:Вызов FancyBox с JQuery элементом

$.fancybox("<div>foo</div>") 

Однако я хочу, чтобы вместо того, чтобы передать объект JQuery к FancyBox так я могу сохранить такие вещи как .data() и события click(), которые я уже добавил:

var $fooObj = $("div.foo").data("foo","bar"); 
$.fancybox($fooObj); 

Возможно ли это как-то?

ответ

9

Вам просто нужно установить его в качестве content собственности в опциях переходящих $.fancybox(), как это:

$.fancybox({ 
    content: $fooObj 
}); 

You can test it out here.

+1

Блестящий! Не могу поверить, что они не делают это более очевидным в описании свойства «content». Благодаря!!! – Abadaba

2
function LaunchFancyBox(code) 
{ 
    jQuery.fancybox({ 
     content: code 
    });  
} 

И в OnClick/клик:

<a href="#" onclick="LaunchFancyBox('<div>test</div>'); return false;">Launch it baby</a>! 
0

Простой способ !!!

$(document).ready(function() { 
    $.fancybox({ 
     'width': '80%', 
     'height': '80%', 
     'autoScale': true, 
     'transitionIn': 'fade', 
     'transitionOut': 'fade', 
     'type': 'iframe', 
     'href': 'http://www.example.com' 
    }); 
});