2012-04-05 7 views
0

J'ai lu plus d'une douzaine de messages et réponses ... en vain.rappels fancybox

Quel est le problème avec ce code simple, qu'est-ce qui me manque ici. Aucun des callbacks essayés ne fonctionne.

 
$("#project_info").fancybox({ 
     'onComplete': function() { 
      console.log('log this'); 
      //$.cookie('fcookie', '1', {path: '/'}); 
     } 
    }); 
$("#project_info").fancybox().trigger("click"); 

et html

 
<a id="project_info" href="#project_display"></a> 
<div style="display: none;"> 
    <div id="project_display" style="width:100px; height:100px; overflow:auto;"> 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
    </div> 
</div> 

Note: WAMP locale

modifier: également testé sur le serveur distant - fichier bande vers le bas afin d'éviter toute interaction - même résultat

Répondre

0

Je réponds à ma propre question, pour poster solution que je finalement utilisé et les tests effectués. Peut-être que quelqu'un le trouve utile.

Il y a quelque chose dans fancybox 1.3 qui tue les rappels, quand un cookie est utilisé dedans.

Pas le temps de tester, c'est quoi.

Quelqu'un sait? écrivez ci-dessous. Juste une note: même chose, quand j'ai essayé de mettre cookie via .trigger ("click") Les rappels fonctionnent très bien avec un clic standard.

Ce que j'ai essayé - sans succès.

 
//trial 1: does not work 
$("#project_info").fancybox({ 
    onComplete: function() { 
    $.cookie('fcookie', '1', {path: '/'}); 
    } 
}); 
$("#project_info").fancybox().trigger("click"); 

//trial 2: does not work 
function StoreCookie() { 
    $.cookie('fcookie', '1', {path: '/'}); 
} 
$("#project_info").fancybox({ 
    onComplete: function() { 
    StoreCookie() 
    } 
}); 
$("#project_info").fancybox().trigger("click"); 

//trial 3: does not work 
function StoreCookie() { 
    $.cookie('fcookie', '1', {path: '/'}); 
} 
$("#project_info").fancybox({ 
    onComplete: StoreCookie 
}); 
$("#project_info").fancybox().trigger("click"); 

//trial 3: does not work 
function StoreCookie() { 
    $.cookie('fcookie', '1', {path: '/'}); 
} 
$("#project_info").fancybox({ 
    // 
}); 
$("#project_info").fancybox().trigger("click", StoreCookie());//trial 1: does not work 
$("#project_info").fancybox({ 
    onComplete: function() { 
    $.cookie('fcookie', '1', {path: '/'}); 
    } 
}); 
$("#project_info").fancybox().trigger("click"); 

//trial 2: does not work 
function StoreCookie() { 
    $.cookie('fcookie', '1', {path: '/'}); 
} 
$("#project_info").fancybox({ 
    onComplete: function() { 
    StoreCookie() 
    } 
}); 
$("#project_info").fancybox().trigger("click"); 

//trial 3: does not work 
function StoreCookie() { 
    $.cookie('fcookie', '1', {path: '/'}); 
} 
$("#project_info").fancybox({ 
    onComplete: StoreCookie 
}); 
$("#project_info").fancybox().trigger("click"); 

//trial 3: does not work 
function StoreCookie() { 
    $.cookie('fcookie', '1', {path: '/'}); 
} 
$("#project_info").fancybox({ 
    // 
}); 
$("#project_info").fancybox().trigger("click", StoreCookie()); 

ce je me suis installé pour

Je ne l'aime pas beaucoup tu car le cookie est stocké un peu en dehors de fancybox cuisson jusqu'à

 
if (!$.cookie('fcookie')) { 
    $("#project_info").fancybox({ 
    onComplete: function() { 
     // 
    } 
    }); 
    $("#project_info").fancybox().trigger("click"); 
} 
$.cookie('fcookie', '1', {path: '/'}); 
+0

Je ne vois pas ce qui se cache derrière l'idée de stocker un cookie dans fancybox. Ce que vous pouvez essayer est d'appeler la fonction de cookie 'onClosed' plutôt que' onComplete'. C'est vrai, fancybox nettoie après lui-même lorsqu'il est fermé. – JFK

+0

c'est ce que les rappels sont pour - pour faire quelque chose (cookie est quelque chose); onClosed/onComplete - cela ne marche pas non plus; pourquoi cookie à l'intérieur? J'ai essayé d'utiliser une instance de fancybox pour l'onload/click et la configuration/destruction des cookies si nécessaire - enfin j'ai utilisé 2 - voir ici: http://tinyurl.com/cdldjrh – Jeffz

0

Le « onComplete "callback n'a pas besoin de guillemets; Vous pouvez faire un simple:

$("#project_info").fancybox({ 
    onComplete: function() { 
    alert('Completed!'); 
    } 
}); 
+0

Je l'ai testé dans les deux sens - pas chance - il y a tellement de plaintes à propos des rappels fancybox, que je me demande si elles ne sont pas seulement "nous l'avons aussi" type de fonctionnalité - il est là - puisque d'autres l'ont, mais ça marche rarement - moi aussi testé sur le serveur distant - même résultat – Jeffz

+0

Pour les fancybox v1.3.x, les guillemets sont réellement recommandés. Ce n'est pas le cas pour v2.x – JFK

+0

JFK merci ..... – Jeffz