質問
iは、エリアにタグをドロップする際に以下の関数を呼び出しています。 そのタグが正常にドロップされると、画像が追加され、ダブルクリックするとダイアログボックスが表示されます。これは、タグを初めてドロップするときに発生しますが、2回目にドロップすると機能しません。
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++;
}
解決
問題は、イベントでダイアログを作成していることですが、2回目はダイアログが作成されたことを認識し、何もしません。ここには2つのオプションがあります。 autoOpen:false属性を使用してダイアログを事前に作成してから、.dialog( 'open')および.dialog( 'close')を使用するか、ダイアログが終了したらダイアログを破棄することができます。
破棄するには、これをクローズハンドラに追加します。
close:function()
{
$('#dialog1').dialog('destroy');
}
所属していません StackOverflow