-1

別のページに存在する別のliをクリックしてliを削除する際に問題があります..そして、li idの削除はlocalStorage変数に存在します..

同じページに 2 つの div があります。最初のliコードは

<div data-role="page" id="wishListPage" data-add-back-btn="true">
            <div data-role="header" data-position="fixed">
                <header id="mainHeader" align="center">
                    <a href="#"><img src="images/logoName.png" /> </a>
                </header>
            </div>
            <div data-role="content" data-theme="a" id="wishProducts">
                <ul id="wishList" data-role="listview"></ul>
            </div>
    </div>

li は、値がデータベースから取得される属性を設定しますrs.rows.item(i).id

$("#wishList").append('<li id="'+rs.rows.item(i).id+'"><a href="index.html#removeProductDialogPage" data-role="button" data-rel="dialog" data-transition="slide" data-ajax="false" onClick=saveValuesInLocalStorage("'+rs.rows.item(i).id+'","'+rs.rows.item(i).productName+'","'+rs.rows.item(i).imageName+'","'+rs.rows.item(i).vendorImageName+'","'+rs.rows.item(i).fixedPrice+'","'+rs.rows.item(i).finalPrice+'","'+rs.rows.item(i).authorName+'","'+rs.rows.item(i).sharingUrl+'");>' +
                '<img src='+rs.rows.item(i).imageName+' id="itemImage"/>'+
                '<span id="dataName"><h4>'+pName+'</h4></span>' +
                '<p><span id="dataAuthorName">'+aName+'</span></p>' +
                '<p><span id="itemRsPrice">Rs.&nbsp;&nbsp;</span><span id="itemStrikePrice"><strike>'+rs.rows.item(i).fixedPrice+'</strike></span>&nbsp;&nbsp;<span id="itemPrice">'+rs.rows.item(i).finalPrice+'</p></span>'+'<img src='+rs.rows.item(i).vendorImageName+' id="itemSite"/></a></li>');
        }
        $("#wishList").listview("refresh");

ここで WishList は ul.. の ID であり、localStorage コードのストアは..

function saveValuesInLocalStorage(productUrl, productName , productImageName , vendorImage , fixedPrice, finalPrice, authorName,sharingUrl){
    localStorage.sharingUrl  = sharingUrl;
    localStorage.productUrl = productUrl;
    localStorage.productName  = productName;
    localStorage.imageName = productImageName;
    localStorage.vendorImage = vendorImage; 
    localStorage.fixedPrice = fixedPrice;
    localStorage.finalPrice  = finalPrice;
    localStorage.authorName = authorName;
}

今、IDを持つliを削除したいlocalStorage.productUrl

ダイアログページは次のとおりです。

<div data-role="content" data-theme="a">
            <ul name="options" id="options" data-role="listview">
                <li>
                    <a href="#" data-theme="a" data-ajax="false" onClick=" removeInfoDatabase()">
                        <p><span id="itemName"><h4>Remove from wish List</h4></span></p>
                    </a>
                </li>
                <li>
                    <a href="javascript:void(0);" data-theme="a" data-ajax="false"  onclick="openWebLink()">
                        <p><span id="itemName"><h4>Go to Store</h4></span></p>
                    </a>
                </li>
             </ul>
</div>

次のコードは phonegap SQLite コードを示しています。removeInfoDatabase() 関数は..

function removeInfoDatabase (){
    db.transaction(removeElement, removeError, removeSuccess);
}

function removeError(err){
    console.log("Error processing SQL: "+err.code);
    alert("couldn't remove from wish list");
}
function removeSuccess(){
    var elem =document.getElementById(localStorage.productUrl);
    elem.parentNode.removeChild(elem);
//  $("#"+localStorage.producturl).remove();
//  var mm = $("#"+localStorage.producturl).html();
//  alert(""+mm);
    $("#wishList").listview("refresh");
    alert("item is removed successfully");
    history.back();
}
function removeElement(tx){
    tx.executeSql('CREATE TABLE IF NOT EXISTS itemDetail (id unique, productName , imageName, vendorImageName , fixedPrice , finalPrice , authorName , sharingUrl)');
    tx.executeSql('DELETE  from itemDetail where id="'+localStorage.productUrl+'"');
}

[ウィッシュリストから削除]をクリックした後、ウィッシュリストを削除する方法を教えてください..どうぞよろしくお願いします..

4

1 に答える 1

1

2 つのページが (同じオブジェクトを共有するように) 同じサイトにあると仮定すると、localStorage最も簡単なオプションはsetTimeout()、要素を削除するページで を使用して、ID の存在についてローカル ストレージをポーリングすることです。

function pollStorage() {
    var id = localStorage.id;
    if (typeof id !== 'undefined') {
        delete localStorage.id;
        $(id).remove();
    }
    setTimeout(pollStorage, 100);
}

pollStorage();
于 2012-06-29T13:03:07.967 に答える