jQuery Benutzeroberfläche 1.7.1 Modal Close on Overlay Klicken Sie auf

7

Ich versuche, das Standardverhalten eines modalen jQuery UI-Dialogfelds zu überschreiben, um das Feld zu schließen, wenn auf das Overlay geklickt wird. Der Code, den ich unten habe, schließt das Dialogfeld, nachdem ich es zum ersten Mal geöffnet habe, und klicke auf das Overlay. Wenn ich das Dialogfeld erneut öffne, tut das Klicken auf das Overlay nichts. Ich vermisse eine Veranstaltung hier. Kann jemand darauf hinweisen, was ich hier falsch mache?

Danke!

%Vor%     
mattmac 07.07.2009, 15:15
quelle

8 Antworten

15

Einfachster Weg, es zu tun: Ссылка

Fügen Sie Folgendes hinzu:

%Vor%     
Paul 07.08.2010 01:44
quelle
10

Pauls Lösung funktioniert gut, wenn Sie eine alte Version von jQuery (vor 1.7) verwenden. Jetzt ist .live() jedoch veraltet. Verwenden Sie stattdessen on() .

%Vor%     
Evan Carroll 27.04.2012 15:44
quelle
4

Ich bin mir nicht sicher, warum dein Code nicht funktioniert, aber ich habe ihn genommen, modifiziert und eine Version bekommen, die so funktioniert, wie du und ich wollen:

%Vor%

Der Hauptunterschied besteht darin, dass ich Logik zum Schließen von Dialogen an Klicks auf das Überlagerungsobjekt von JQuery binde (anstelle des Dokuments, wie Sie es sind). Und ich mache die Bindung, wenn das Dialogfeld geöffnet wird, und die Bindung, wenn das Dialogfeld geschlossen wird. Nicht wirklich notwendig, aber es hält die Dinge sauber.

Egal, danke für die Inspiration.

    
Michael Scepaniak 20.09.2009 16:10
quelle
3
___ answer10353694 ___

Pauls Lösung funktioniert gut, wenn Sie eine alte Version von jQuery (vor 1.7) verwenden. Jetzt ist %code% jedoch veraltet. Verwenden Sie stattdessen %code% .

%Vor%     
___ answer1451368 ___

Ich bin mir nicht sicher, warum dein Code nicht funktioniert, aber ich habe ihn genommen, modifiziert und eine Version bekommen, die so funktioniert, wie du und ich wollen:

%Vor%

Der Hauptunterschied besteht darin, dass ich Logik zum Schließen von Dialogen an Klicks auf das Überlagerungsobjekt von JQuery binde (anstelle des Dokuments, wie Sie es sind). Und ich mache die Bindung, wenn das Dialogfeld geöffnet wird, und die Bindung, wenn das Dialogfeld geschlossen wird. Nicht wirklich notwendig, aber es hält die Dinge sauber.

Egal, danke für die Inspiration.

    
___ qstntxt ___

Ich versuche, das Standardverhalten eines modalen jQuery UI-Dialogfelds zu überschreiben, um das Feld zu schließen, wenn auf das Overlay geklickt wird. Der Code, den ich unten habe, schließt das Dialogfeld, nachdem ich es zum ersten Mal geöffnet habe, und klicke auf das Overlay. Wenn ich das Dialogfeld erneut öffne, tut das Klicken auf das Overlay nichts. Ich vermisse eine Veranstaltung hier. Kann jemand darauf hinweisen, was ich hier falsch mache?

Danke!

%Vor%     
___ antwort12536602 ___

Beste Vorgehensweise:

%Vor%     
___ answer1344322 ___

Wenn Sie Ihr Beispiel betrachten, sieht es so aus, als würden Sie das Ereignis lösen und es nicht wieder aktivieren.

Versuchen Sie, Ihren Bindungsaufruf zu verschieben:

%Vor%

sollte Ihren Unschärfe-Listener jedes Mal neu binden, wenn Ihr Dialog geöffnet wird.

    
___ answer18628816 ___

Wenn die Seite wenige Dialoge enthält, können Sie diese universelle Methode verwenden:

%Vor%     
___ answer3428833 ___

Einfachster Weg, es zu tun: Ссылка

Fügen Sie Folgendes hinzu:

%Vor%     
___ tag123jquery ___ jQuery ist eine beliebte Cross-Browser-JavaScript-Bibliothek, die das DOM-Traversal (Document Object Model), die Ereignisbehandlung, Animationen und AJAX-Interaktionen erleichtert, indem die Diskrepanzen zwischen Browsern minimiert werden. Eine mit jQuery gekennzeichnete Frage sollte mit jquery in Zusammenhang stehen, daher sollte jquery von dem fraglichen Code verwendet werden, und mindestens eine jquery-nutzungsbezogene Elemente müssen in der Frage enthalten sein. ___ answer6645153 ___

So viele komplizierte Antworten ... hier ist ein einfacher wiederverwendbarer.

%Vor%     
___ tag123jqueryui ___ jQuery UI ist ein kuratierter Satz von Benutzeroberflächeninteraktionen, Effekten, Widgets und Designs, die auf der jQuery-JavaScript-Bibliothek basieren. ___ answer3045660 ___

Dieser Beitrag kann helfen:

Ссылка

    
___ qstnhdr ___ jQuery Benutzeroberfläche 1.7.1 Modal Close on Overlay Klicken Sie auf ___
Jonathan 21.09.2012 18:58
quelle
1

Wenn Sie Ihr Beispiel betrachten, sieht es so aus, als würden Sie das Ereignis lösen und es nicht wieder aktivieren.

Versuchen Sie, Ihren Bindungsaufruf zu verschieben:

%Vor%

sollte Ihren Unschärfe-Listener jedes Mal neu binden, wenn Ihr Dialog geöffnet wird.

    
daniellmb 27.08.2009 23:48
quelle
1

Wenn die Seite wenige Dialoge enthält, können Sie diese universelle Methode verwenden:

%Vor%     
user2749416 05.09.2013 06:01
quelle
0

Dieser Beitrag kann helfen:

Ссылка

    
jk. 15.06.2010 13:38
quelle
0

So viele komplizierte Antworten ... hier ist ein einfacher wiederverwendbarer.

%Vor%     
Kevin Miller 11.07.2011 02:13
quelle

Tags und Links