2012-12-23 39 views
0

我已經看到關於此主題的許多問題,但沒有任何答案/建議似乎適用於我。我對JQuery相當陌生,所以一些幫助將非常感謝!僅針對表格中的第一條記錄打開JQuery對話框

我有一個鏈接表。出於某種原因,我只能打開第一個記錄的對話框(我可以多次執行此操作)。它不適用於任何其他記錄。

這裏是我的代碼:

$(document).ready(function() { 

     var dlg=$('#ticketDetails').dialog({ 
      title: 'Ticket Details', 
      resizable: true, 
      autoOpen:false, 
      modal: true, 
      hide: 'fade', 
      width:850, 
      height:700 
     }); 


     $('#view').click(function(e) { 

      //testing with static record 
      dlg.load('displayRecord.php?id=215', function(){ 
       dlg.dialog('open'); 
      }); 

      }); 

    }); 

表中的所有行具有如下表鏈接:

echo '<td><a href="#" id="view">View</a> </td>'; 

的div來顯示對話框:

<div id="ticketDetails"> </div> 

我也嘗試過將alert('1');附加到$('#view').click函數中,該函數不會觸發其他記錄。

回答

3

在你的表中,每行都有相同的id,「view」。一個ID應該是對頁面上的一個元素獨特的,所以你應該更改爲一類:

<td><a href="#" class="view">View</a></td>

,並相應地改變你的腳本:

$('.view').click(function(e) { ... });

裏面的事件處理程序,可以使用事件變量e來獲取被點擊的元素,使用其目標屬性:

$('.view').click(function(e) { 
    alert($(e.target).text()); 
}); 
+0

當然CSS的規則!謝謝。 – greenpool

+0

我正在使用分頁,它似乎不工作超出第一頁。任何想法爲什麼?謝謝。 – greenpool

+0

當您設置點擊處理程序時,它僅對當前存在的'.view'元素生效。如果加載新元素,則需要再次調用'click'方法。你可以發佈一個鏈接到頁面,你正在做或做一個jsfiddle? –