Je veux faire apparaître une fantaisie lorsque quelqu'un essaie de soumettre un formulaire. Donc j'ai ceci:
$('#login-form').submit(function(e) {
$.fancybox({
content: '<h2>Hello Fancybox</h2>',
modal: true
});
return false;
});
Fonctionne bien, mais je préférerais utiliser mon DIV que d'essayer de spécifier tout le HTML dans la chaîne de contenu. Puis-je le faire popup avec cette
<div style="display:none" id="access-policy">
blah blah blah
</div>
Au lieu?
pour FANCYBOX V3 ou plus tard voir cette réponse
pour les anciennes versions:
Vous devez définir href
Propriété L'ID DIV. Si vous utilisez $('#access-policy').show()
in content
Propriété La deuxième fois que vous ouvrez cette fantaisie ne montrera rien.
$('#login-form').submit(function(e) {
$.fancybox({
href: '#access-policy',
modal: true
});
return false;
});
Aussi dans le HTML doit être:
<div style="display:none">
<div id="access-policy">
blah blah blah
</div>
</div>
:)
parce que j'utilisais le code de la réponse accepté et je me suis gratté la tête pendant une demi-heure.
Dans le plus récent FANCYBOX 3, ils ont modifié certains noms d'options et comment utiliser certaines méthodes.
La version plus ancienne sur la façon d'ouvrir un élément en ligne:
$.fancybox({ // OUTDATED
href: '#element-id',
modal: true
});
doit changer de
$.fancybox.open({ // FancyBox 3
src: '#element-id',
modal: true
});
Notez la méthode ouverte et le changement HREF-> SRC.
Sans l'ouverture, vous obtiendrez une erreur de fantaisie n'est pas une erreur de fonction. Sans "SRC", vous obtiendrez un contenu demandé ne peut pas être chargé popup.
J'espère que cela aidera quelqu'un à éviter mes mêmes erreurs et que nous devons suivre la documentation sur celle-ci. C'est beaucoup plus difficile à dépasser.
tu peux faire:
$('#login-form').submit(function(e) {
$.fancybox({
content: $('#access-policy').show(),
modal: true
});
return false;
});
Peu importe. content
peut être un objet JQuery:
$('#login-form').submit(function(e) {
$.fancybox({
content: $('#access-policy'),
modal: true
});
return false;
});
Mais le div
doit être enveloppé dans une DIV cachée,
<div style="display:none"><div id="access-policy">
blah blah blah
</div></div>
Sinon, rien n'apparaîtra; Cela ne change pas la propriété d'affichage.
Le contenu est "n'importe quel HTML", alors obtenez le HTML de la DIV et donnez-le au contenu
content: $('#access-policy').html(),
Cela démontre comment utiliser FANCYBOX sans nécessiter le <a href>
élément de liaison.
Inline (1.3.4) :
<div id="menuitem" class="menuitem"></div>
<div style="display:none;">
<div id="dialogContent">
</div>
</div>
$('#menuitem').click(function() {
$.fancybox({
'type': 'inline',
'content': '#dialogContent'
});
});
Inline (2.1.5) :
<div id="menuitem" class="menuitem"></div>
<div style="display:none;">
<div id="dialogContent">
</div>
</div>
$('#menuitem').click(function() {
$.fancybox({
'type': 'inline',
'href': '#dialogContent'
});
});
iframe:
<div id="menuitem" class="menuitem"></div>
$('#menuitem').click(function () {
$.fancybox({
type: 'iframe',
href: 'http://www.abc123.com'
});
});