Question

J'appelle la fonction indiquée ci-dessous lors de la suppression d'une balise sur une zone. Si cette balise tombe correctement, elle doit ajouter une image et, en double-clic, une boîte de dialogue doit apparaître. Cela se produit pour la première fois lorsque je supprime une balise mais ne fonctionne pas lorsque je supprime cette seconde fois.

   function dropFile()    
   {
         $(".File_div").draggable({
             helper:'clone',
             revert: 'invalid'
         });
         var tag="#Normal_Tag1_div_dummy1";
         $(Normal_Tag1_div_dummy1).droppable({
          drop: function(ev,ui) { alert('dropped');
              //accept: ".File_div"
              var dropped = ui.draggable;
              alert(dropped);
              var file_img_src=document.getElementById('file_img').src;
              var image='<img id="file_img'+count+'" class ="file_img" name="file_img" src='+file_img_src+" />"
              $(image).appendTo(this).dblclick(
                  function(event){
                            alert("1");
                            window.event.cancelBubble = true;
                             //var jsmarty=WMCreateSmartyObject();
                            //var test_tpl= WMSmartyFetch(jsmarty, 'dialog.tpl');
                            //document.getElementById('test').innerHTML=test_tpl;
                            //dialogtest();
                            $("#dialog1").dialog(
                           {
                               /* buttons:
                                        {
                                            "Upload file": function(){
                                            },
                                            Cancel: function() {
                                            $(this).dialog('close');
                                            }
                                        },*/
                                close: function() {
                                }
                            });
                            alert("2");
               });

         }

        });

       count++;

    }
Était-ce utile?

La solution

Le problème est que vous créez la boîte de dialogue dans l'événement, mais la deuxième fois, elle sait qu'elle a été créée et ne fait rien. Vous avez deux options ici. Vous pouvez soit construire la boîte de dialogue au préalable avec l'attribut autoOpen: false, puis utiliser .dialog ('open') et .dialog ('fermer'), ou vous pouvez la détruire une fois que vous avez terminé.

Pour détruire, ajoutez ceci à votre gestionnaire le plus proche.

close:function()
{
   $('#dialog1').dialog('destroy');
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top