2012-06-14 172 views
-1

我使用下面的代碼打開一個對話框:jQuery UI的對話框不會關閉

<li> 
    <input type="button" value="Preview" onclick="showPreview('EmailPreview');" /> 
</li> 

<div id="dialog"> 
    </div> 
    <script type="text/javascript"> 
     //<![CDATA[ 
     $(document).ready(function() { 
       $('#dialog').dialog({ 
       autoOpen: false, 
       modal: true, 
       height: 525, 
       resizable: false, 
       width: 600, 
       dialogClass: 'timer' 
      }); 
     }); 
     //]]> 
    </script> 
</div> 

在我的.js文件:

function showPreview(action, id) { 
    $.get("/Manage/Account/" + action + "/" + id, function (data) { 
     $("#dialog").html(data); 
     $('#dialog').dialog('open'); 
     $('#Area, #Exchange, #Number').autotab_magic().autotab_filter('numeric'); 
     $("#dialog input[type='button'], #dialog select,#dialog input:checkbox,#dialog input:radio,#dialog input:file").uniform(); 
    }); 

我在3使用這個確切的代碼位置。在一個地方,一切都很完美。在另外兩個位置,完全相同,只是在不同的視圖中,對話框將打開但不關閉。有什麼明顯的我失蹤了?

這是在對話框視圖:

<div class="top"><a onclick="$('#dialog').dialog('close'); return false"><img src="/public/images/admin/btn-close.png" /></a></div> 
+0

你錯誤地標記了你的問題,這是jquery問題;) – Zbigniew

回答

1

我沒有看到任何對話閉幕的任何地方,你可以用這個功能關閉對話框:

$('#dialog').dialog('close'); 

更多關於它:jQueryUI dialog

此外,任何元素都必須具有唯一的ID,因此它應該類似#dialog-a,#dialog-b,否則會出現id sel錯誤ectors等

+0

我只是忘了包括那部分。應該關閉它的盒子裏有一個「X」。它在一個工作。我想知道是否有一條規定我打破了? –

+0

對話框ID如何?他們都是一樣的(#dialog)? – Zbigniew

+0

是的,他們是相同的 –

1

您的對話元素ID必須是唯一的,否則jQuery不會找到正確的。

+0

你是救生員。我需要的只是獨特的ID。 –