2012-05-26 79 views
0

我已經初始化我的jQuery UI的這個樣子,我可以讓它工作了一個對話框:jQuery UI的 - 多個對話框

<script> 
// increase the default animation speed to exaggerate the effect 
$.fx.speeds._default = 1000; 
$(function() { 
    $("#treatment").dialog({ 
     autoOpen: false, 
     show: "blind", 
     hide: "explode" 
    }); 

    $("#opener").click(function() { 
     $("#treatment").dialog("open"); 
     return false; 
    }); 
}); 
</script> 

不過,我有一張桌子和一列,「治療」的用戶必須點擊「更多信息」,以瞭解更多,到目前爲止,我已經編寫這樣的:

 foreach($foo['MedCond'] as $row) 
    { 
    ?> 

      <tr> 
<td><b>Name:</b></td> 
<td><b>Symptoms:</b></td> 
<td><b>Treatment:</b></td> 
<td><b>Effective From:</b></td> 
<td><b>Effective To:</b></td> 
    </tr> 
     <tr> 
     <td><?php echo $row['Name'];?></td> 
     <td><?php echo $row['Symptoms'];?> </td> 
     <td><div id="treatment"><p><?php echo $row['Treatment'];?></p></div><button id="opener">More info</button></td> [...] 

因此,對於每一行進行治療,有相應的對話框打開按鈕,一旦點擊該,有關該特定治療的詳細信息顯示出來。我已經爲此工作了一個,但當多於一個共享相同的「處理分區」時,它失敗了。

我該如何得到這個工作。

乾杯。

+0

ID必須是唯一的。嘗試將它們改爲類。 – j08691

回答

1

使用類而不是Id。表示使用$(「.treatment」).dialog並寫入div class =「treatment」。開瓶器的相同步驟

+0

謝謝。然而,當我點擊「更多開啓者」時,這種方法奏效,它打開了每一個治療對話框,而不是僅僅與治療相關的「更多信息」。我改變了按鈕ID,按鈕類,但沒有奏效。我想這是因爲它不能區分不同的治療方法嗎? – thejoker

+0

您可以循環您的div搭配這些要打開 '$( 「#opener」)。點擊(函數(){$ ( 「治療」)。每個(函數(){ VAR MYID = $(本).attr( '身份證');如果 (身份識別碼== 「matchPattern」) {$ (本).dialog(「開放式);} }); });' – TheodoreV

+0

你必須爲每個處理div設置唯一的id(使用循環中的任何計數器變量,將其id設置爲treatment1,treatment2等)。並設置任何屬性與按鈕,其中包含治療的div ID讓我說

,然後檢查屬性治療在你的功能,並打開適當的對話框 –