我有這個問題,我不知道如何解決按鈕。我有一張桌子,每一行都有一個「包裝」操作按鈕。當它被點擊時,該按鈕被移除,以便用戶不會再次意外地點擊它並「包裝」相同的物品兩次。試圖刪除點擊按鈕,但他們不斷回來(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代碼在第二頁而不是第一頁上(這是我需要的)。
這是因爲當您更改頁面時HTML會重新加載。一種解決方案是使用localstorage來存儲點擊的按鈕 – Akis