2012-03-27 98 views
0

我已經編輯了這段代碼從數據表插件女巫使tr點擊能夠並彈出打開另一個tr與點擊tr的細節。這段代碼是用於打開和關閉的事件偵聽器。當「細節」打開時,img應該是images/details_close.png,它們是關閉的img應該是images/details_open.png,並且在點擊時打開和關閉時發生交換。發生了什麼事情是當它打開或關閉的時候沒有交換,我仍然只能得到「details_open.png」。我不知道,如果我只是沒有正確選擇img標籤或發生了什麼。圖片交換與點擊<tr>

鏈接到項目: http://www2.kent.k12.wa.us/ksd/it/www/mobile/elementary.html

$('#example tbody').on('click', 'td', function (e) { 
     var myImage = $(this).find("img"); 
     var nTr = $(this).parents('tr')[0]; 
     if (oTable.fnIsOpen(nTr)) 
     { 
     /* This row is already open - close it */ 
     myImage.src = "images/details_open.png"; 
     oTable.fnClose(nTr); 
     } 
     else 
     { 
     /* Open this row */ 
     myImage.src = "images/details_close.png"; 
     oTable.fnOpen(nTr, fnFormatDetails(oTable, nTr), 'details'); 
     } 
    }); 

回答

0

原來這就是我結束了從你們加入的答案,並做一些編輯這就是解決了這個問題。

$('#example tbody').on('click', 'tr', function (e) { 
     var myImage = $(this).find("#more"); 
      var nTr = $(this).closest('tr')[0]; 
      if (oTable.fnIsOpen(nTr)) 
      { 
      /* This row is already open - close it */ 
      myImage.attr("src","images/details_open.png"); 
      oTable.fnClose(nTr); 
      } 
      else 
      { 
      /* Open this row */ 
      myImage.attr("src","images/details_close.png"); 
      oTable.fnOpen(nTr, fnFormatDetails(oTable, nTr), 'details'); 
      } 
     }); 
+0

很高興你想出了一個解決方案。 – davepreston 2012-03-31 15:04:48

0

試試這個:

var myImage = $(this).parent().find("img"); 

從你的描述,你想在TR地方換一個形象,但你的點擊處理程序是所有運輸署。爲了在TR中搜索圖像,您需要在TD的父級中執行find()。

+0

您可以在我更新的鏈接上籤出項目。這不是順便說一句。 – 2012-03-27 23:28:10

1

兩個部分:

首先,修改您的圖像選擇,因爲你是在TD內,而不是TR

var myImage = $(this).parent().find("img"); 

其次,使用attr()方法來改變src屬性的值而不是作用於SRC直接

myImage.attr("src","images/details_open.png"); 
+0

沒有爲我工作的圖像仍然沒有交換。 :( – 2012-03-28 17:09:40