Я работаю в автономном режиме с SQLite, Javascript и Chrome. На моей главной странице (main.html) у меня есть два элемента div: <div id="menuLeft">
, который содержит список имен элементов с кнопками для редактирования каждого элемента, и
<div id="content">
Список элементов записывается следующим образом:
<li>ItemName1
<div id="idItem1" class="editItem_btn">
<img src="btn_edit.png">`
</div>
</li>
В main.html у меня есть следующий код:
$("#menuLeft").delegate(".editItem_btn", "click", function(e0)
{
e0.preventDefault();
var editItemId = $(this).attr("id");
editItemId = parseInt(editItemId);
var url="edititem.html"
$("#content").load(url,function(){
loadRecord(editItemId);`
});
});
Когда я нажимаю на кнопку редактированияданного элемента, идентификатор элемента сначала извлекается из идентификатора div вокруг кнопки редактирования.Затем я загружаю страницу edititem.html контентом.В случае успеха я запускаю функцию loadRecord (editItemId), где loadRecord (i) содержится в edititem.html:
function loadRecord(j)
{
var item = dataset.item(j);
idItem.value = item['id'];
ItemName.value = item['ItemName'];
dateStart.value = item['dateStart'];
dateEnd.value = item['dateEnd'];
notes.value = item['notes'];
}
Эта функция позволяет отображать параметры Item (id, ItemName ....) содержится в базе данных.
Вот моя проблема, код работает, но странным образом, означая, что, если я нажму на кнопку редактирования Item1, отобразятся параметры Item2.То же самое, если я нажму на Edit Item2, отобразятся параметры Item3.
Затем я заменил:
var item = dataset.item(j);
на:
var item = dataset.item(j-1);
, и это работает.Но мне нужно понять, почему он так себя ведет и почему мне нужно его использовать (j-1).Я поместил функцию alert () в код jquery, чтобы убедиться, что у меня правильный номер editItemId, и в функции loadRecord (j).Правый идентификационный номер извлекается после щелчка, а правильный идентификационный номер передается в функцию.Я понятия не имею, в чем здесь ошибка!