2010-10-13 5 views
0

J'ai une palette de couleurs qui affiche un div caché quand un lien est cliqué. au sein de la div étant montré dans la colorbox est un usercontrol. C'est fondamentalement un abonnez-vous à la forme de bulletin qui les ajoute à notre client DB. Pour une raison quelconque, le bouton pour soumettre le formulaire ne fonctionnera pas dans la boîte de couleur, mais il le fera si je le déplace en dehors de la div caché. C'est un problème que j'ai rencontré auparavant et je l'ai contourné en créant un iframe dans le div caché sur une page blanche avec le contrôle userc, mais je suis sûr qu'il doit y avoir une solution plus simple.usercontrol avec colorbox ne pas déclencher un événement

Markup:

<div style='display:none'> 
    <div id='SignUpForm' style='padding:10px; background:#fff;'> 
     <umbraco:Macro Alias="SignUpUserControl" runat="server"></umbraco:Macro> 
    </div> 
</div> 

JavaScript:

$(document).ready(function() { 
    $(".openSignUpForm").colorbox({ 
     width : "50%", 
     inline : true, 
     href : "#SignUpForm" 
    }); 
}); 

btw. J'utilise umbraco cms, la macro est la référence à l'usercontrol. mais j'ai toujours le même problème si j'ajoute l'usercontrol à la page de la manière conventionnelle.

+0

stackoverflow a déchiré sur le mon code HTML, ici ils sont à nouveau:

Répondre

1

Je ne sais pas si vous avez réussi à résoudre ce problème depuis, vu que depuis longtemps, j'imagine que vous avez probablement déménagé!

Mais pour quelqu'un d'autre qui a cette question, je vous recommande de lire cette page: http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/Q_26778740.html

Si vous faites défiler vers le bas, vous pouvez voir toutes les réponses qui ont été affichées sans avoir un compte.

EDIT: 08/06/2011

En fait, tout lien direct remarqué à la page ci-dessus ne fonctionne pas ...

Voici le message que je faisais référence à partir de ce site: " Entendons-nous comment les plugins de recouvrement les plus jquery travail: votre structure de page est comme ceci:

--body> -

--form> -

--Le Page contents--

--div à afficher en superposition (colorbox div), il est normalement caché à l'aide display: none comme dans ce CAS e--

-/form> -

-/body> -

Au cours de l'exécution, tout en affichant la superposition, les changements de structure que:

--body > -

--form> -

--Le Page contents--

-/pour m> -

--div> (ce qui est emballage overlay) --div à afficher en superposition (colorbox div), il est normalement caché à l'aide display: none comme dans ce case--

-/div> -

-/body> -

Notez que votre div est déplacé hors de la balise. C'est ainsi que les événements ne tirent pas.

Solution est:

Il le fichier jquery.colorbox.js, recherchez la ligne suivante:. $ ('corps') précédez (overlay $, box.append de $ (wrap $, loadingBay $))

remplacez-le par la ligne suivante: $ ('form'). Prepend ($ overlay, $ box.append ($ wrap, $ loadingBay));

Tout devrait commencer à travailler très bien. »

J'espère que ça aide!

1

merci pour la réponse. Je fini par écrire tout le code colorbox à partir de zéro moi-même. Il était pas sur le disque vraiment! Juste une absolue position div ontop de tout ce qui n'affichait rien pour commencer avec juste une ligne animée comme $ ("# mydiv"). fadeIn() ou $ ("# mydiv"). show();

Questions connexes