用于ul列表的HTML5存储?

时间:2015-09-17 17:24:16

标签: javascript jquery html5 session-storage

我无法弄清楚如何为列表项使用会话存储。这似乎不起作用,并且由于样式,我无法使用基本选择/选项:

<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"><span data-bind="label">Day</span><span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" name="country">
    <li><a href="#">1</a></li>
    <li><a href="#">2</a></li>
    <li><a href="#">3</a></li>
</ul>

var item = window.localStorage.getItem('country');
$('ul[name=country]').val(item);

$('ul[name=country]').change(function() {
   window.localStorage.setItem('country', $(this).val());
});

fiddle

2 个答案:

答案 0 :(得分:2)

这是一个基本的B事件。您不应该使用click()

change()

使用$('ul[name=country] li').click(function() { window.localStorage.setItem('country', $(this).text()); }); 检查控制台。

小提琴:https://jsfiddle.net/5z0nkdjb/

答案 1 :(得分:1)

您尝试在val代码中使用ul,但它没有value属性。

此外,您正尝试在其上使用change事件,并且它也没有该事件。

首先,你必须了解你在那里做了什么。你可能已经从其他任何地方复制了这个 Dropdown Picker ,而你却不明白它在做什么。

它使用select内的label来模拟button行为,只要点击li标记内的ul,代码就会发生变化label的{​​{1}}文字。

因此,首先,当您的页面加载时,您必须查看localStorage中是否已有任何内容,如果是,则必须将标签的文本更改为localStorage中保存的值。

li

之后,在var item = localStorage.getItem('country'); if (item) $('span[data-bind="label"]').text(item); 点击事件中,您必须将点击的li文本保存到localStorage中以便以后保留。

li

我已更新your fiddle with the code working