HTML5 / jQuery Mobile: как добавить идентификатор данных в элемент списка? - PullRequest
1 голос
/ 04 февраля 2012

У меня есть неупорядоченный список, состоящий из элементов, к которым были добавлены строки данных из веб-базы данных HTML5. Я пытаюсь добавить идентификатор каждой строки в соответствующий элемент списка, чтобы иметь возможность удалить каждый элемент по его идентификатору. Когда я пытаюсь удалить элемент, независимо от того, какой из них я выбрал, последний добавленный элемент - это тот, который удаляется. Кроме того, я могу удалить только один элемент за один раз, прежде чем обновлять страницу.

Пока мой код выглядит следующим образом:

function refreshEntries() {
db.transaction(
    function(transaction) {
        transaction.executeSql(  
        'SELECT * FROM eyeshadowEntries', [],
            function (tx, result) {
                $("#eyeshadow ul").html("");
                for (var i=0; i < result.rows.length; i++) {
                    var row = result.rows.item(i);
                    var brand = $("<li>"+row.brand+", "+row.productName+", "+row.shade+", "+row.datePurchased+"</li>");
                    brand.data("entryId", row.id).addClass(row.id);
                    var deleteElem = $("<span></span>").addClass("delete").text("Delete");
                    deleteElem.appendTo(brand);
                    var brandLi = brand.appendTo("#eyeshadow ul");
                    brandLi.find(".delete").click(function(){
                        var clickedEntryId = brandLi.data("entryId");
                        deleteEntryById(clickedEntryId);
                        brandLi.remove();

                    });

                }
            },      
            errorHandler
        );
    }
);
}

function deleteEntryById(id) {
db.transaction(
    function (transaction) {
        transaction.executeSql('DELETE FROM eyeshadowEntries WHERE id=?;', [id], null, errorHandler);
    }
);
}

1 Ответ

0 голосов
/ 04 февраля 2012

я не очень знаком с HTML5, но, насколько я могу судить, вы назвали ID записи данных, вероятно, это должно быть

 transaction.executeSql('DELETE FROM eyeshadowEntries WHERE id=?;', [entryId], null, errorHandler);

Хотя я не уверен, потому что, как я сказал, mне знаком с HTML5

...