我正在創建一個網頁,並根據CSV文件在該網頁中填充值。當JavaScript生成的複選框發生變化時運行函數
根據CSV文件中的列數,我想要使用這些值生成複選框列表。我有工作:
function updateKey() {
var key = '';
for (var item in data[0])
{
key += '<input type="checkbox" name="' + item + '" value="' + item +'"> '
key += item + "<br>\r\n"
}
document.getElementById('key').innerHTML = key
}
現在我想,當用戶檢查這些複選框,並基於該運行的功能檢測。例如,假設我只想顯示CSV文件中被檢查的行。我需要聽取複選框的狀態才能更改,然後計算檢查哪些複選框,然後相應地更新HTML。
我一直在尋找的計算器,發現這樣的功能:
var selected = [];
$('#key input[type="checkbox"]:checked').each(function() {
selected.push($(this).attr('name'));
});
但是,它似乎沒有觸發,當我檢查框。我在push
函數後面添加了一個警告窗口,似乎沒有任何事情發生。是否因爲這些複選框是在頁面加載後生成的?有沒有辦法傾聽這些動態創建的複選框?
你正在尋找一個委派的事件處理程序。 '$(document).on('change','#key input [type = checkbox]',function(){//其中一個複選框發生了變化}) - 您可以捕獲在此函數中被更改的複選框使用'$(this)'。 [我爲你做了一個小例子](https://jsfiddle.net/gddqtbyt/1/)。 – Santi
Santi,這個工作完美!如果你把它變成帖子,我會給你答案:) –