私はjsでテーブルを生成し、いくつかのヘッダーに次の関数を使用しています。
function generateTableHeader(table) {
var tr = document.createElement('tr');
var th = document.createElement('th');
th.onclick = function(){
toggleHidden("hide_header_" + table_count);
};
th.appendChild(document.createTextNode(key));
tr.appendChild(th);
table.appendChild(tr);
}
私のトグル非表示関数は、クラス「hide_header_{somenumber}」のすべての要素を非表示にするだけです。正常に動作します。
問題は、このgenerateTableHeader関数を数回呼び出して、複数のテーブルのヘッダーを作成することです-呼び出されるたびに、table_count(グローバル変数)がインクリメントされ、この関数がonclickイベントのときに持っている数の要素のクラスのみを非表示にすることを期待していました創造された。代わりに、ヘッダーのいずれかをクリックすると、最後に作成された要素が常に非表示になります。
この関数は4回呼び出され、4つの異なるテーブルに4つのテーブルヘッダーが作成されます。各テーブルには、正しいクラス名(つまり、「hide_header_1」、「hide_header_2」など)を持つtdの列があります。最初のヘッダーをクリックすると、4番目のテーブル列が非表示/表示されます。2番目、3番目、または4番目をクリックしても、4番目の列のみが非表示/表示されます。クリックするたびに、そのテーブルのtdのみを非表示にします。
この関数を呼び出すたびに、作成しているonclickイベントが上書きされているようですが、理由はわかりません。何か案は?
どんな助けでもいただければ幸いです!