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
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.
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%Tags und Links jquery jquery-plugins