1

[MAKE IT MY STORE]リンクをクリックすると、IDに基づいてliのコンテンツが保存され、liのコンテンツが別のページに表示される機能を使用しようとしています。

このコード:

<li><xsl:attribute name="id">store-<xsl:value-of select="@id"/></xsl:attribute></li>

に出力

<li id="store-1075"></li> 

また、「@ id」で表される番号1075は、各店舗の場所に基づいて変化し、複数の場所があります。

このセクションのliは、バックエンドに追加されたストアの場所を自動生成します。そのため、フロントエンドでは現在、複数のリストアイテムストアの場所が表示されます。

<ul id="storeList">
    <xsl:for-each select="$currentPage/* [@isDoc]">
      <xsl:sort select="@nodeName" order="ascending" />
        <li>
          <xsl:attribute name="id">store-<xsl:value-of select="@id"/></xsl:attribute>

            <a href="{umbraco.library:NiceUrl(@id)}">
                <img class="location-image" alt="">
                    <xsl:attribute name="src">
                        <xsl:value-of select="storeImage"/>
                    </xsl:attribute>
                </img>
            </a>

           <a href="{umbraco.library:NiceUrl(@id)}">
              <xsl:value-of select="location"/>
            </a>

            <p><xsl:value-of select="./address"/></p>
            <p><xsl:value-of select="./addressCity"/></p>

            <div class="makeMyStoreWrapper"><a class="makeMyStore" href="#"><xsl:attribute name="id">store-<xsl:value-of select="@id"/></xsl:attribute>MAKE IT MY STORE</a></div>

        </li>
    </xsl:for-each>
</ul>

現在、localStorage.setItemを使用してクリックしたときに、ul id="storeList"の状態を保存するように設定しています。そして、コードに#storeListのIDが表示されると、以下に示すように、localStorageに保存された値がすべて取り込まれます。

$(function() {

var save = $('#storeList').get(0);

$(save).click(function() {
localStorage.setItem('saved', this.innerHTML);

});


if ( localStorage.getItem('saved') ) {
save.innerHTML = localStorage.getItem('saved');

}

明らかに、これは私が望んでいることではありません。代わりに、クリックした個々のliのコンテンツを保存する必要があります。コードを次のようにします。

var id = any of the store ids or the specific ids, whatever works better.
var save = document.getElementById('store'+id);

または、varidがすべての可能なストアID番号の配列に等しい場合もあります。

主な目的は、1つ以上のストアをクリックして、それらを「マイストア」ページに保存できるストアロケーターページです。私はほとんどそれを機能させていますが、壁にぶつかりました。どんな助けでも素晴らしいでしょう、そして私が明確にする必要がある何かがあるかどうか私に知らせてください。私はASPを使用したことがないので、これは私にとってトリッキーであり、jQueryまたはjavascriptを最初から実行するのはこれが初めてです。私はもともとCookieで使用しようとしましたが、ユーザーログインがないため、代わりにlocalStorageを使用することにしました。

4

1 に答える 1

1

同様のタイプのプロジェクトを終了したばかりです。うまくいけば、これが正しい方向に進むことを願っています

ドキュメント準備完了関数の内部:

$('.store').on('click', function () { // something with the class store clicked
    var storeStorageKey = $(this).attr('id'); // store id of the item 

        $(this).data('value', 1); // use of html5 data values on the html line helped alot, just settin static right now
 //set in local storage so refreshing the page remembers what youve clicked
        localStorage.setItem(storeStorageKey, $(this).data('value'));
 });

これで、ストア ID を介してアクセスできるコレクションを作成できますが、ローカル ストレージの値全体を JSON オブジェクトとして保存して反復処理する方がよい場合があります。

https://github.com/Jrizzi1/ND-mSummit-bingo/blob/master/js/script.jsを参照したい場合は、ローカル ストレージを使用した私のプロジェクト javascript へのリンクを参照してください。

于 2012-10-23T23:22:06.233 に答える