質問

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');
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top