Я пытаюсь использовать функцию, в которой вы можете щелкнуть ссылку «СДЕЛАТЬ ЭТО МОЙ МАГАЗИН», и она сохраняет содержимое li на основе идентификатора и перетаскивает содержимое li на другую страницу.
Этот код:
<li><xsl:attribute name="id">store-<xsl:value-of select="@id"/></xsl:attribute></li>
Выходы на
<li id="store-1075"></li>
И число 1075, представленное как «@id», меняется в зависимости от местоположения каждого магазина и наличия нескольких местоположений.
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>
Прямо сейчас у меня есть настройка для сохранения состояния ul id = "storeList" при нажатии с помощью localStorage.setItem. И затем каждый раз, когда идентификатор #storeList появляется в коде, он будет извлекать любое значение, сохраненное в localStorage, как показано ниже:
$(function() {
var save = $('#storeList').get(0);
$(save).click(function() {
localStorage.setItem('saved', this.innerHTML);
});
if ( localStorage.getItem('saved') ) {
save.innerHTML = localStorage.getItem('saved');
}
Очевидно, я этого не хочу. Вместо этого я хочу, чтобы он сохранял содержимое каждого щелчка мышью. Я хочу, чтобы код был примерно таким:
var id = any of the store ids or the specific ids, whatever works better.
var save = document.getElementById('store'+id);
Или, возможно, var id равняется массиву всех возможных номеров идентификаторов магазинов.
Основная цель - это страница поиска магазинов, где вы можете щелкнуть по одному или нескольким магазинам и сохранить их на своей странице «Мой магазин». У меня почти все работает, но я уперся в стену. Любая помощь была бы замечательной, и дайте мне знать, если мне нужно что-то уточнить. Я никогда не работаю с ASP, поэтому для меня это сложно, и я впервые делаю любой jQuery или javascript с нуля. Первоначально я пытался использовать его с файлами cookie, но вместо этого решил использовать localStorage, поскольку нет входа пользователя.
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'));
});
Теперь у вас может быть коллекция, к которой вы можете получить доступ через идентификаторы хранилища, хотя может быть лучше сохранить все значение локального хранилища в виде объекта JSON для итерации, в зависимости от того, что вы предпочитаете
Вот ссылка на мой проект javascript, который использовал локальное хранилище, если вам нужна ссылка https://github.com/Jrizzi1/ND-mSummit-bingo/blob/master/js/script.js
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.