2010-11-17 6 views
1

d'abord mon anglais pas bon tant. sory.jQuery boîte de dialogue ne s'ouvrira qu'une fois

mon problème est, lorsque le chargement de la page est terminé. J'utilise la fonction de clic d'abord clik travailler avec succès. mais le clic de secon ne fonctionne pas. mais je rafraichis la page d'abord clik travaillant, deuxième ne travaillant pas againg. quand je rafraîchis le code de la page fonctionne pour une fois. (Note: Je suis nouveau à jquery)

$(document).ready(function() { 
    $('#silmesaji').hide(); 
    $(".delbutton").click(function() { 
     var element = $(this); 
     var silinecek_idi = element.attr("id"); 
     var info = 'id=' + silinecek_idi; 
     $("#silmesaji").dialog({ 
      modal: true, 
      title: 'Kategoriyi Silin!', 
      resizable: false, 
      'buttons': { 
       "Sil": function() { 
        $.ajax({ 
         type: "GET", 
         url: "forms/joker.asp", 
         data: info, 
         success: function() { } 
        }); 
        $("#silmesaji").dialog("close"); 
        element.parents(".siralagayri").animate({ 
         backgroundColor: "#f31e1f" 
        }, "fast").animate({ 
         opacity: "hide" 
        }, "slow"); 
       }, 
       "iptal": function() { 
        $("#silmesaji").dialog("close"); 
       } 
      } 
     }); 
    }); 

FIRTS merci pour la réponse.

mais je veux: quand cliquez sur le bouton OK. envoyé un message et ferme le dialogue. il ne peut pas travailler :(

$(".delbutton").click(function() { 
    var element = $(this); 
    var silinecek_idi = element.attr("id"); 
    var info = 'id=' + silinecek_idi; 
    $("#silmesaji").dialog('open'); 
}); 


$("#silmesaji").dialog({ 
    autoOpen: false, 
    modal: true, 
    buttons: { 
     "Ok": function() { 
      $.ajax({ 
       type: "GET", 
       url: "forms/joker.asp", 
       data: info, 
       success: function(){ 
        element.parents(".siralagayri") 
         .animate({ 
          backgroundColor: "#f31e1f" 
         }, "fast") 
         .animate({ 
          opacity: "hide" 
         }, "slow"); 
        $("#silmesaji").dialog("close"); return false(); 
       } 
      }); 
     }, 
     "Cancel": function() { 
      $(this).dialog("close"); 
     } 
    } 
}); 
+1

Vous avez obtenu 4 erreurs sur JSLint. –

+2

J'ai mis le code par JSBeautifier afin d'améliorer la lisibilité ... –

+1

ne vous détestez pas quand la question est "JQuery ne fonctionne pas" quand la question n'a rien à voir avec JQuery ne fonctionne pas? Pour le PO, avoir une question plus auto-descriptif que de blâmer JQuery pour les erreurs de l'utilisateur. –

Répondre

1

Lorsque vous appelez $("#silmesaji").dialog(...), la valeur par défaut de l'option "autoOpen" est true, de sorte que vous créez & montrent la boîte de dialogue.

Mais après l'avoir fermé, un appel à $("#silmesaji").dialog(...), ne recréer la boîte de dialogue, il ne sera pas non « Autoopen ».

Vous devez appeler $("#silmesaji").dialog('open'), pour rouvrir/afficher la boîte de dialogue.

Je fais toujours comme ça:

  • Dans la fonction ready, je crée la boîte de dialogue, avec Autoopen: false. (Note: non en cas de clic)
  • En cas de clic que j'appelle $("#silmesaji").dialog('open');

Je vais essayer de changer votre code:

$(document).ready(function() { 
    $('#silmesaji').hide(); 
    $(".delbutton").click(function() { 
     var element = $(this); 
     var silinecek_idi = element.attr("id"); 
     var info = 'id=' + silinecek_idi; 
     $("#silmesaji").dialog('open'); 
    }); 

    $("#silmesaji").dialog({ 
     autoOpen: false; 
     modal: true, 
     /* Your code */ 
    }); 


}); 
Questions connexes