2009-05-13 9 views
0

J'utilise le plugin jQuery nyroModal dans ASP.Net. J'aime nyroModal, et dans l'ensemble son fonctionnement très bien. Mais j'utilise le rappel endShowContent pour mettre le focus sur le premier élément de saisie de texte sur le contenu de la page après le chargement de nyromodal. Pour ce faire, j'ai le code suivant sur la page qui initie le popup nyromodal.jQuery nyromodal + ASP.Net + UpdatePanel/AJAX - endShowContent ne fonctionne pas, scintille, perd le focus

$ (function() {$ .fn.nyroModal.settings.endShowContent = function (CLNA, paramètres) {$ ('entrée: texte: d'abord', elt.content) .focus();}; });

Je peux dire son genre de travail, parce que le premier champ de texte obtient momentanément le focus lorsque le modal apparaît. Mais alors ça scintille et perd de nouveau le focus. C'est presque comme si nyromodal décidait que ce n'est pas encore complètement chargé et que quelque chose d'autre se produit. Ou peut-être que le UpdatePanel interfère? (Je ne sais pas pourquoi ça irait). Est-il probable que les appels AJAX JS générés automatiquement générés par UpdatePanel fassent quelque chose après que l'appel endShowContent de nyromodal se soit produit?

Toute aide ou compréhension appréciée.

Répondre

2

J'ai essayé de recréer le problème ici: http://jsbin.com/igibo

Je ne peux pas reproduire le problème, donc je suppose qu'il ya quelque chose d'autre dans votre code qui est l'origine du problème.

Essayez d'éditer la récréation via http://jsbin.com/igibo/edit pour dupliquer le problème, alors nous pouvons le résoudre à partir de là.

P.S. Bien qu'il soit bon que vous affiniez votre problème, veuillez mettre à jour la question au lieu d'ajouter plus d'informations dans les nouvelles réponses. (Ils ne sont techniquement pas des réponses)

0

Avez-vous essayé envelopper votre code dans

$(document).ready(function() { // put all your jQuery goodness in here. });

JQuery Document Ready Tutorial

Il est possible que le dom est pas encore complètement chargé.

+0

Merci KClough! J'ai aussi ce code sur la page contextuelle modale. Donc, quand il apparaît, il devrait toujours essayer d'exécuter ce code document.ready lorsque tout/DOM est prêt .. MAIS, il scintille toujours, mais perd de nouveau le focus! :( Ce qui semble très bizarre pour moi, parce que document.ready devrait vraiment avoir le dernier mot, je l'aurais pensé. Je n'ai aucune autre javascript inhabituel/bizarre sur ma page soit. je pourrais faire effectuez un test rapide et supprimez le UpdatePanel et laissez-le comme une page non-AJAX et voyez juste à des fins de test si cela fait disparaître le problème.Mais j'ai besoin du UpdatePanel. – Aaron

0

Merci brianpeiris! Vous ne le croirez pas, je me sens malade. J'ai reçu votre code de ce jsbin et l'ai copié localement, donc j'ai eu votre code d'exemple côte à côte avec mes propres pages de test. Dans mes pages de test, j'utilisais une vieille façon de lancer un nyroModal, qui était:

<a href="modal.html" target="_blank" class="nyroModal">Launch modal</a> 

Je trouve ce code sur tout le web dans les exemples et ainsi de suite. Mais il semble que ce soit un moyen ancien/douteux/supplanté de lancer un popup avec nyromodal!

J'ai simplement fait qu'un lien hypertexte normal/propre et enlevé la classe et les déchets cible, puis utilisé le même style que vous me avez envoyé:

$('a').nyroModal(); 

Maintenant, tous mes problèmes ont disparu. Cela a tout arrangé! :) Aussi l'animation de l'ouverture de la fenêtre est BEAUCOUP plus lisse.

Merci beaucoup. J'ai trouvé la documentation un peu incohérente pour ce plugin.Vous m'avez aidé à me diriger dans la bonne direction. De cette façon, la mise au point fonctionne parfaitement et très bien aussi.

Salutations

Questions connexes