παράθυρο διαλόγου jQuery δεν ανοίγει 2η φορά

ψήφοι
1

Βρήκα αυτό το νήμα που έχει βασικά το ίδιο θέμα έχω. Αλλά η λύση τους δεν λειτουργεί για μένα.

Το παράθυρο διαλόγου εμφανίζεται την πρώτη φορά που κάνετε κλικ στο κουμπί υποβολής, αλλά όχι την 2η φορά. Είμαι ανοίγοντας το παράθυρο διαλόγου μετά την υποβολή εντύπου.

ΕΚΣΥΓΧΡΟΝΙΖΩ

Τελικά το πήρα εργασίας. Εδώ είναι το σωστό κωδικό:

   if (jQuery('#registrationforms').length > 0) {
     //instantiate the dialog 
     jQuery(#dialog).dialog({ modal:true, autoOpen:false });

     //Some more code here to call processRegistration function.
   }

  function processRegistration(instanceID, formData)
  {

    jQuery.post(mypath/jquery_bll.php, { instance: 'processRegistration', formData : formData, instanceID : instanceID },
      function(feedback)
      {
        jQuery('#dialog').text(feedback.message);
        jQuery('#dialog').parent().addClass(feedback.type);
        jQuery('#dialog').dialog('open');
      },json);

  }

Επειδή είμαι δυναμικά την εφαρμογή τάξης css, θα πρέπει να βεβαιωθείτε για να το προσθέσετε στο εξωτερικό DIV που $ .dialog δημιουργεί για να τυλίξει μου DIV «διαλόγου».

Δημοσιεύθηκε 23/09/2009 στις 20:28
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
4

Νομίζω ότι το πολύ ψηφιστεί απάντηση από RayLehman στη θέση που αναφέρεται είναι η σωστή λύση.

λειτουργία jQuery UI του διαλόγου () δημιουργεί πραγματικά ένα παράθυρο διαλόγου από κάποιο περιεχόμενο. Δεν είναι στην πραγματικότητα ζητούν «ανοίξει» στο παράθυρο διαλόγου οπουδήποτε.

Μόλις το παράθυρο διαλόγου δημιουργείται με την κλήση διαλόγου () την πρώτη φορά, το μόνο που χρειάζεται να καλέσετε διαλόγου ( «ανοίξει») ή διαλόγου ( «κλείσιμο»), παρά την εκ νέου δημιουργία του πραγματικού αντικειμένου διαλόγου κάθε φορά.

Απαντήθηκε 23/09/2009 στις 20:39
πηγή χρήστη

ψήφοι
0

Αυτό ακούγεται σαν να έχετε τυλιγμένο ανοιχτή εκδήλωση σας με την κλήση init. Θα πρέπει να βεβαιωθείτε ότι έχετε προετοιμάσετε το πρώτο παράθυρο διαλόγου σας - συνήθως ορίζοντας την ιδιότητα AutoOpen σε ψευδείς - και στη συνέχεια να έχουν μια ξεχωριστή εκδήλωση κάντε κλικ για να ανοίξει διάλογο σας.

Διαβάστε αυτό το άρθρο για να εξηγήσει λεπτομερώς.

Απαντήθηκε 23/09/2009 στις 20:41
πηγή χρήστη

ψήφοι
1

Μην χρησιμοποιείτε dialog()τόσο για την προετοιμασία του διαλόγου και να το ανοίξετε ταυτόχρονα. Έκανα αυτό το λάθος πάρα πολύ.

Πρώτα η προετοιμασία του διαλόγου, στη συνέχεια, ανοίξτε το στο επανάκλησης όπως έτσι:

jQuery('#dialog').dialog({ autoOpen: false });

function processRegistration(instanceID, formData) {
jQuery.post(...,
  function(feedback) {
    var dialog = jQuery('#dialog');
    dialog.text(feedback.message);
    dialog.addClass(feedback.type);
    dialog.dialog('open');
  }, "json");
};
Απαντήθηκε 23/09/2009 στις 21:08
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more