Div (Meldungsfeld) wird zur Laufzeit nicht mit jQuery ausgeblendet

8

Ich habe ein Anmeldeformular wie folgt.

%Vor%

Wenn Sie auf showlogin klicken. Ich benutze jQuery, um es anzuzeigen. Wie

%Vor%

Nun, was passiert, nehme ich an, ich klicke auf den Knopf, der wie

angezeigt wird

Wenn ich nun auf Login klicke, erscheint die Meldung

Wenn ich jetzt auf OK klicke. Box verschwinden.

Bis hier sind die Dinge in Ordnung. Nun nehme ich an, ich schließe das Login-Formular, indem ich auf Abbrechen klicke. Und öffne wieder das Formular

Klicken Sie erneut auf den Login-Button. Die Nachricht wird angezeigt

Aber jetzt dieses Mal, wenn ich auf die Schaltfläche OK klicke, dann ist das Overlay weg, aber die Nachricht nicht. Warum? Ich bekomme so etwas

Warum verschwindet es diesmal nicht? Was mache ich falsch? Bitte helfen?

Danke

    
Basit 28.08.2012, 10:56
quelle

1 Antwort

2

Ich denke, das Problem bezieht sich auf Ihre Funktion validateUser() . Sie sehen jedes Mal, wenn Sie die Login-Box anzeigen, einen neuen Click-Handler, der den Code enthält, um den Dialog für die Login-Schaltfläche anzuzeigen.

%Vor%

Dies bedeutet, dass das zweite Mal, wenn die Login-Box angezeigt wird, der Dialog zweimal angezeigt wird. Das 3. Mal wird der Dialog dreimal angezeigt. Sie können das wahrscheinlich nicht sehen, weil Sie es zentriert haben. Wenn Sie eine Javascript alert() Funktion nach der Zeile $.dialog.createUI = function (config) { löschen, sehen Sie das 2. Mal, dass der Login angezeigt wird, erhalten Sie 2 Warnungen! Beispiele für dieses Problem finden Sie unter Geige .

Sofern Ihr Code nicht etwas anderes in der Funktion validate user vornimmt, schlage ich vor, dass Sie diese Funktion ablegen und stattdessen den Click-Hander binden, wenn das Dokument fertig ist. Also hast du so etwas:

%Vor%     
Chris Moutray 28.08.2012, 13:03
quelle

Tags und Links