2017-02-10 58 views
0

我有這個問題,我不知道如何解決按鈕。我有一張桌子,每一行都有一個「包裝」操作按鈕。當它被點擊時,該按鈕被移除,以便用戶不會再次意外地點擊它並「包裝」相同的物品兩次。試圖刪除點擊按鈕,但他們不斷回來(JavaScript,HTML)

到目前爲止,它一直運行良好,但我只注意到,當你點擊到表格的下一頁(當它有超過15行左右的行)並返回到第一頁時,任何按鈕點擊第一頁(和刪除)又回來了。

無論您移動到哪個頁面,我都需要我的表格「記住」哪些行的動作按鈕被點擊/移除。不過,我不知道該怎麼做。

這裏是我的代碼,刪除操作按鈕,當您點擊:

// Pack action button 
$(document).on('click', ".box-electrode", function (e) { 
    var id = $(this).attr('value'); 
    var sn = $(this).data('sn'); 
    addElectrodeToBox(id, sn); 
    $(this).remove(); 
}); 

表本身使用的DataTable創建。

有人能指出我正確的方向嗎?

編輯

下面是一些代碼,我想出了基於下面的答案,但它不工作。在JS控制檯中沒有錯誤,它似乎沒有做任何事情。

$(document).on('page.dt', function() { 
    var $allSerialNumbers = $('.box-electrode'); 

    $('#electrodes li').each(function (i, li) { 
     var $id = $(li).data('id'); 
     for(var index = 0; index < $allSerialNumbers.length; index++){ 
      if($id == $allSerialNumbers.eq(index).attr('data-id')){ 
       $('.box-electrode').eq(index).remove(); 
      } 
     } 
    }) 
}); 

$allSerialNumbers代表所有的操作按鈕和$('#electrodes')是我比較到列表中。

我認爲這個問題(比我笨拙的JS技能等)的一部分可能是數據表改換事件page.dt似乎隻影響正在更改的頁面,而不是頁面被更改。例如,當我在我的表的第二頁上並且回到第一頁時,我的JS代碼在第二頁而不是第一頁上(這是我需要的)。

+1

這是因爲當您更改頁面時HTML會重新加載。一種解決方案是使用localstorage來存儲點擊的按鈕 – Akis

回答

0
  1. 創建一個JavaScript空數組;
  2. DataTables庫具有換頁事件;
  3. 當用戶按下按鈕 - 獲取按鈕的值,將其存儲在數組中,並刪除按鈕;
  4. 當用戶更改頁面 - 頁面的更改事件將被觸發 - >將執行清理功能,該功能將讀取數組,並按值搜索所需的按鈕,並在存在時刪除它們。
+0

你能看到我添加到我的問題底部的代碼嗎?我試圖根據您對頁面更改事件所說的內容創建一些JavaScript,但它不起作用。 –

+0

按鈕位於哪裏? ' ​​一個 ​​b ​​Ç ​​d ​​<鈕值= 「B5」>電子:當我將它們設置在最後一列內不切換頁面之後再次出現 ' – Alexey

+0

他們在第一欄。我使用Underscore.js模板在表格的每一行上創建一個按鈕。 –