Files
povtorniy-repeating-ui/таблица|table.js

85 lines
2.4 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Таблица = function(id)
{
this.задатьЗаголовки = (заголовки) =>
{
this.заголовки = заголовки;
this.__пересобрать();
};
this.задатьСтроки = (строки) =>
{
this.строки = строки;
this.__пересобрать();
};
this.элемент = (номер) =>
{
return $(`#${id}-${номер}`);
};
this.__пересобрать = () =>
{
this._адатьСодержимое();
this.__отслеживатьВыбор();
};
this._адатьСодержимое = () =>
{
var содержимое = "";
if (this.заголовки && this.заголовки.length)
{
var заголовок = "";
for (var номер in this.заголовки)
{
var значение = this.заголовки[номер];
заголовок += `<th>${значение}</th>`
}
содержимое += `
<thead>
<tr>
${заголовок}
</tr>
</thead>
`;
}
if (this.строки && this.строки.length)
{
var тело = "";
for (var номер in this.строки)
{
var столбцы = this.строки[номер];
var строка = "";
for (var н in столбцы)
{
var значение = столбцы[н];
строка += `<td>${значение}</td>`;
}
тело += `<tr id="${id}-${номер}">${строка}</tr>`;
}
содержимое += `<tbody>${тело}</tbody>`;
}
$(`#${id}`).html(содержимое);
};
this.__отслеживатьВыбор = () =>
{
if (!(this.строки && this.строки.length))
{
return;
}
var тут = this;
for (var номер in this.строки)
{
const номерСтроки = номер;
$(`#${id}-${номер}`).click(function() {
if (тут.выбор)
{
тут.выбор(номерСтроки);
}
});
}
};
};