2012-01-13 10 views
0

ボタンクリックイベントでダイアログボックスを開きます。ダイアログボックスにはokとキャンセルボタンが含まれています。 IEでは正常に動作しますが、Firefoxのダイアログで「キャンセル」ボタンが開いていますが、「OK」ボタンは何も起こっていません。Jquery Dialog OkボタンがFirefoxで動作していませんがIEで動作しています

以下は、私がダイアログを開いているボタンのコードです。

$('#addImage').click(function() 
{ 
    var url = 'Default.aspx'; 
    var d = $('#dialog_img').html('<iframe id="ifrm" , width = 540 , height = 170></iframe>'); 
    $("#dialog_img>#ifrm").attr("src", url); 
    d.dialog('open').dialog({ modal: true ,width: 560,resizable: false , 
     buttons: 
     { 
      'OK': function() { 
       var img = document.createElement('img'); 
       $(img).attr("id", "dyndiv" + count); 
       $(img).attr("width", 30); 
       $(img).attr("height", 50); 
       $(img).attr("src", 'Uploads/'+window.frames['ifrm'].document.getElementById('dvFileName').innerHTML) ; 
       var $ctrl = $(img).resizable({ containment: '#containment-wrapper'}).parent().addClass("resizable mydiv").draggable({ 
        containment: '#containment-wrapper', 
        cursor: 'move', 
        delay: 200, 
        distance: 30, 
        opacity: 0.35 
       }) 
       objid = "dyndiv" + count; 
       $(img).css("z-index" , $(img).css("z-index") + count); 
       $('#sel_obj_text').val("Image"); 
       image_visibility(); 
       count++; 
       $("#containment-wrapper").append($ctrl); 
       $('#' + objid).parent().css("position","relative"); 
       $('#' + objid).parent().position({ 
        of: $("#containment-wrapper"), 
        my: "center" + " " + "center", 
        at: "center" + " " + "center" 
       });     

       $(this).dialog('destroy'); 
      }, 
      'Cancel': function() { 
       $(this).dialog('destroy'); 
      } 
     } 
    }); 
}); 
+0

コンソールにエラーが表示されている場合、教えてください –

+0

キャンセルコードについては、コードには何も記載されていません –

+0

jquery UIライブラリが含まれていますか? –

答えて

1

あなたの$ctrl宣言の後にセミコロン(;)を逃しています。元のコードで

、その次の行:編集したコードで

var $ctrl = $(img).resizable({ containment: '#containment-wrapper'}).parent().addClass("resizable mydiv").draggable({ containment: '#containment-wrapper', cursor: 'move',delay: 200,distance: 30, opacity: 0.35}) 

var $ctrl = $(img).resizable({ containment: '#containment-wrapper'}).parent().addClass("resizable mydiv").draggable({ 
    containment: '#containment-wrapper', 
    cursor: 'move', 
    delay: 200, 
    distance: 30, 
    opacity: 0.35 
}) // <-- Missing semi-colon (;) 
+0

彼は連続操作を行っているので、サイズ変更後にセミ(;)したくありません[resizable、parent、addClass、draggable ]をdiv($(img))に追加します。最後にセミコロンがあります。 –

+0

@Umesh:私はすべてのことを意味した。 –

+0

ok ..あなたは正しいです:) –

1

は、ダイアログが何度も何度もしたときに作成されていないので、代わりに$(this).dialog('destroy');$(this).dialog('close');を使用する必要がありますボタンがクリックされます。

0

「OK」ボタンをクリックすると、ブロック$ctrlで作成された画像が'containment-wrapper'に表示されます。 FF、IEでうまく動作します。私はここでこれを見ることができます。あなたは、コードが停止されているFirebugの助けを借りて詳細を見ることができます。

+0

image_visibility関数は、私のフォームと私が使用したカウント変数のコントロールの可視性を制御することです動的IDを作成します。私は火災のバグで、 "window.frames.ifrmが定義されていません"というエラーを表示しています。 –

+0

iFrameがDIV内にid = "dialog_img"であることを確認してください。このiFrameはjQueryにアクセスできません。 –

+0

申し訳ありませんが、私はiframeを宣言している上記のコードの2行目を理解していませんでした。 –

関連する問題