我无法弄清楚如何为列表项使用会话存储。这似乎不起作用,并且由于样式,我无法使用基本选择/选项:
<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());
});
答案 0 :(得分:2)
这是一个基本的B
事件。您不应该使用click()
:
change()
使用$('ul[name=country] li').click(function() {
window.localStorage.setItem('country', $(this).text());
});
检查控制台。
答案 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