Из-за отсутствия ответов я нашел обходной путь, который очень уродлив, но работает нормально.
В случае события загрузки окна я решил перебрать таблицу и установить для каждого события onclickчтобы вызвать мою функцию show_hide_column с параметром столбца, установленным из итерации.
window.onload = function () {
var headers = document.getElementsByTagName('th');
for (index in headers) {
headers[index].onclick = function (e) {
show_hide_column(index, false)
}
}
}
show_hide_column - это функция, которую можно легко найти, и код здесь:
function show_hide_column(col_no, do_show) {
var stl;
if (do_show) stl = 'table-cell'
else stl = 'none';
var tbl = document.getElementById('table_id');
var rows = tbl.getElementsByTagName('tr');
var headers = tbl.getElementsByTagName('th');
headers[col_no].style.display=stl;
for (var row=1; row<rows.length; row++) {
var cels = rows[row].getElementsByTagName('td')
cels[col_no].style.display=stl;
}
}
Примечание: в моем html была только одна таблица, поэтому код также предполагает это.Если у вас есть больше столов, вы должны немного повозиться с ним.Также предполагается, что таблица имеет заголовки таблицы ();
Также я отметил, что это уродливый подход, так как я ожидал, что смогу извлечь индекс ячейки таблицы из таблицы без необходимости повторять егонагрузка.