2010-11-13 3 views
4

Je sais qu'il ya un moyen d'appeler fancybox manuellement avec une chaîne de HTML comme ceci:Appel fancybox avec l'élément jquery

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

Cependant, je veux plutôt passer un objet jQuery à la fancybox pour que je puisse conserver des choses comme les événements .data() et click() j'ai déjà ajouté:

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

Est-ce possible?

Répondre

9

Il vous suffit de le définir comme la propriété content dans les options que vous passez en $.fancybox(), comme ceci:

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

You can test it out here.

+1

Brilliant! Je ne peux pas croire qu'ils ne rendent pas cela plus évident dans leur description de la propriété "contenu". Merci!!! – Abadaba

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

Et dans le onclick/cliquez sur:

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

Way simple !!!

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