2009-05-13 9 views
0

Ich benutze das jQuery nyroModal Plugin in ASP.Net. Ich liebe nyroModal, und insgesamt funktioniert es sehr gut.jQuery nyromodal + ASP.Net + UpdatePanel/AJAX - endShowContent funktioniert nicht, flackert, Fokus verliert

Aber ich benutze den endShowContent-Callback, um den Fokus auf das erste Texteingabeelement auf dem Inhalt der Seite zu setzen, nachdem nyromodal fertig geladen ist. Um dies zu erreichen, habe ich den folgenden Code auf der Seite, die das nyromodale Popup initiiert.

$ (function() { $ .fn.nyroModal.settings.endShowContent = function (ELT, Einstellungen) {$ ('input: Text: first', elt.content) .focus();}; });

Ich kann seine Art der Arbeit sagen, weil das erste Textfeld gerade Fokus erhält, wenn das Modal erscheint. Aber dann flackert es und verliert wieder den Fokus. Es ist fast so, als ob nyromodal entscheidet, dass es immer noch nicht voll geladen ist und etwas anderes passiert, um den Fokus wieder zu entfernen. Oder interferiert das UpdatePanel? (Ich weiß nicht, warum es so wäre). Ist es wahrscheinlich, dass die aufgeblähten, automatisch generierten AJAX JS-Aufrufe von UpdatePanel etwas bewirken, nachdem der endShowContent-Aufruf von Nyromodal passiert ist?

Jede Hilfe oder Einsicht geschätzt.

Antwort

2

Ich habe versucht, hier das Problem neu zu erstellen: http://jsbin.com/igibo

Ich kann das Problem nicht duplizieren, so vermute ich, etwas anderes in Ihrem Code gibt es, die das Problem verursacht.

Versuchen Sie, die Wiederherstellung über http://jsbin.com/igibo/edit zu bearbeiten, um das Problem zu duplizieren, dann können wir es von dort lösen.

P.S. Obwohl es großartig ist, dass Sie Ihr Problem verfeinern, aktualisieren Sie die Frage, anstatt weitere Informationen in neuen Antworten hinzuzufügen. (Sie sind technisch keine Antworten)

0

Haben Sie versucht, Ihren Code in

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

Einwickeln

JQuery Document Ready Tutorial

Es ist möglich, der dom noch nicht vollständig geladen ist.

+0

Danke KClough! Ich habe auch diesen Code auf der modalen Popup-Seite. Also, wenn es auftaucht, sollte es immer noch versuchen, dieses Dokument zu starten.ready Code, wenn alles/DOM bereit ist .. ABER, es flackert nur noch, aber dann verliert den Fokus wieder! :( die extrem seltsam ich scheint, weil document.ready wirklich das letzte Wort haben soll ich gedacht hätte. Ich habe kein anderes ungewöhnliches/seltsam Javascript auf meiner Seite auch nicht. Ich könnte ein tun Schnelles Testen und entfernen Sie das UpdatePanel und lassen Sie es als eine Nicht-AJAX-Seite und nur für Testzwecke sehen, wenn das das Problem verschwinden lässt.Ich brauche jedoch das UpdatePanel. – Aaron

0

Danke Brianpeiris! Du wirst das nicht glauben, mir ist schlecht.

Ich habe Ihren Code von diesem Jsbin und kopierte es lokal, so hatte ich Ihren Beispielcode Seite an Seite mit meinen eigenen Testseiten. In meiner Testseite, war ich mit einem paar alten Art und Weise eine nyromodal der Einleitung, das war:

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

ich diesen Code alle über das Internet in den Beispielen gefunden und so weiter. Aber es scheint, dass es eine alte/zwielichtige/überholte Art sein muss, ein Modell-Popup mit Nyromodal zu starten!

habe ich einfach, dass ein normal/sauber Hyperlink und entfernt die Klasse und Ziel Müll, verwendet dann die gleiche Art, die Sie mir geschickt haben:

$('a').nyroModal(); 

Jetzt weg sind alle meine Probleme. Das hat alles behoben! :) Auch die Animation der Fensteröffnung ist VIEL sanfter.

Vielen Dank. Ich habe die Dokumentation für dieses Plugin etwas inkonsistent gefunden.Sie haben mir geholfen, in die richtige Richtung zu weisen. Auf diese Weise funktioniert der Fokus perfekt und sehr sanft.

Prost

Verwandte Themen