2011-12-15 11 views
1

jQueryでダイアログを配置しようとしていますが、次のコードがあります。私の期待することをしているようには見えません。私は、ダイアログを中央に置くか、私の体の左上隅に現われるようにするだけです。ここで位置決めダイアログ

は、私はあなたがしようとしないのはなぜ

agreeDialog = $j('#termsOfAgreementConfirm').dialog({ 
       modal: true, 
       autoOpen:false, 
       resizable:false, 
       width : 1000, 
       height :400, 
       stack:false, 
       closeOnEscape:false, 
       title:"Terms of Usage", 
       open: function(event, ui) { 

        $j('.ui-dialog-titlebar-close').hide(); 

       }, 
       buttons: { 

        Disagree: function() { 
         disagree.dialog('open'); 
         disagree.dialog('moveToTop'); 

        }, 


        Agree: function() { 
         $j(this).dialog('close'); 
         $j.cookie("agree", "Y"); 
         new Ajax.Request('/myballback/user/ajaxUpdateAgreementForUser', 
           { 
            onSuccess:function(resp) { 
            }, 
            onError: function(resp) { 
             alert("Error:" + resp.toJSON()); 
             return; 
            }, 
            asynchronous:true, 
            evalScripts:true 
           }); 
         $j(this).dialog('close'); 

        } 
       } 
      }); 


var x = jQuery(agreeDialog).position().left + jQuery(agreeDialog).outerWidth(); 
      var y = jQuery(agreeDialog).position().top - jQuery(document).scrollTop();    //agreeDialog.dialog({width:width, height:height ,position:[posX, posY]}); 


      agreeDialog.dialog('option', 'position',[x, y]); 

答えて

3

持っているコードです:

$(".selector").dialog("option", "position", ['left','top']); 

または

$(".selector").dialog("option", "position", 'center'); 
+0

私は左上をしています。それはダイアログを移動しますが、ブラウザウィンドウの左端に移​​動しますが、ダイアログはまだ私のページの一番下に位置しています。どのように、どこで私のdivがダイアログのために定義されるかは重要ですか? – allthenutsandbolts

+0

あなた自身のCSSルールのどれもが 'dialog'の' div'に作用しますか? – jabclab

+0

@ jakeclarksonに同意します。競合する他のスタイルがないことを確認します。 – epignosisx

2

あなたはjQueryののpositionプロパティを使用することができますがdialogこれを達成する。 jQueryUI docsから

$j('#termsOfAgreementConfirm').dialog({ 
    ... 
    position: "center", 
    .... 
}); 

:何かダイアログが表示されるべきところ

を指定します。可能な値:

1)ビューポート内の位置を表す単一の文字列: 'center'、 'left'、 'right'、 'top'、 'bottom'。

2)Xを含む配列は、Yは、ビューポートの左、右上からオフセットした画素に座標対(例えば、[350100])

3)のx、y座標の文字列値を含む配列(例えば、[」 「右」、「トップ」は右上)

+0

私はこれらのオプションをすべて試しましたが、何も動作していないようです..ここに私が見ているものがあります。私のページには、他のdivを表示するいくつかのajax呼び出しがあります。一度それらのdivがレンダリングされると、ダイアログは最初の位置から少し移動しますが、ダイアログのオプションを上または中央に設定することはありません。 – allthenutsandbolts

+0

あなたの 'div'はどのCSSの' position'プロパティを持っていますか? – jabclab

+0

定義されたdivの位置プロパティはありませんか?定義する必要はありますか? – allthenutsandbolts