2011-02-07 21 views
1

我有以下腳本:jQuery的對話框不能正常工作

<script type="text/javascript"> 
$("#addLocation").dialog({ 
      autoOpen: false, 
     modal: true, 
     height: 700, 
     width: 550, 
     buttons: { 
      "Add Location": function() { 
       document.forms["mapform"].submit(); 
      }, 
      Cancel: function() { 
       $(this).dialog("close"); 
      } 
     }, 
}); 
</script> 

<script type="text/javascript"> 
function showLocationDialog() { 
    $("#addLocation").dialog("open"); 
} 
</script> 

<div id="addLocation" style="display:none;"> 
<form action="" method="post" name="mapform"> 
<input type="text" name="name" /> 
<input type="submit" /> 
</form> 
</div> 

<button onclick="javascript:showLocationDialog();">Add an address</button> 

的按鈕不會打開對話框,我不明白爲什麼..任何人都可以幫助?

感謝,

回答

3

等待DOM做好準備。

把你.dialog()代碼在$(document).ready()$()

1

1 - 將.dialog()初始化成$(document).ready() { ... });

2 - 從按鍵值後刪除多餘的逗號:

buttons: { 
      "Add Location": function() { 
       document.forms["mapform"].submit(); 
      }, 
      Cancel: function() { 
       $(this).dialog("close"); 
      } 
     }, <-- remove this, causes IE to spontaneously combust 
0

另一件事嘗試...

請從addLocation的display:none CSS div..the對話框將隱藏所有事情一旦其初始化on document.ready

+1

這不是一個好主意;內聯css在dom準備好之前隱藏了表單*這有兩個優點,首先用戶沒有看到某個東西,然後看到它消失了,這很混亂,並且瀏覽器在加載時不會浪費資源渲染,然後當dom準備就緒時重新渲染,而dialog()隱藏它。 – davin 2011-02-07 13:51:47