image de dialogue jQuery
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++;
}
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');
}