Мне любопытно, сколько из этих методов очереди я могу инкапсулировать в объект Timeline. Я хотел бы добавить DOM, чтобы обновить таблицу с тем, что было добавлено в очередь, и мне любопытно, должен ли я поместить ее в этот же объект или разбить ее на другую функцию, если да, то как мне затем передать аргументы
Я не уверен, как реализовать это с объектами. Вы бы просто написали это addTableRow (this.clips.url)? Или я должен инкапсулировать addTableRow () в объект Timeline?
Два объекта, хранящие информацию и запускающие команды массива.
function Clip() {
this.url = userInput.url.value;
this.inpoint = userInput.inpoint.value;
this.outpoint = userInput.outpoint.value;
}
function Timeline() {
this.clips = [];
this.queue = function() {
this.clips.push(new Clip());
addTableRow(this.clips.url); //Creates the new table with the user's URL inside.
}
}
var myTime = new Timeline();
//Adds the new table row.
function addTableRow(url) {
function delayed() {
var table=document.getElementById("tblVideo");
var lastRow = table.rows.length;
// if there's no header row in the table, then iteration = lastRow + 1
var iteration = lastRow;
var row = table.insertRow(lastRow);
var cell1=row.insertCell(0);
cell1.innerHTML=url;
}
setTimeout(delayed,500);
}
Как это работает с вводом пользователя:
<form id = "userInput">
<p>
Url: <input type="text" id="url" size="30" />
Start Time: <input type="text" id="inpoint" size="2" />
End Time: <input type="text" id="outpoint" size="2" />
<input type="button" onclick="myTime.queue()" value="Add" />
</p>
</form>
<table border = "1" id = "tblVideo">
<tr>
<th>Youtube URL</th>
</tr>
</table>
Я уже пробовал .apply () и .call (), но я не уверен, правильно ли я их использовал. С текущим кодом он обновляет таблицу с неопределенным. Я хочу не только передать URL, но и точку входа и точку в таблицу.
Я искал вокруг и действительно нашел пример, похожий на тот, который у меня сейчас есть.