【发布时间】:2014-03-31 22:37:06
【问题描述】:
根据this Stack Overflow q/a 中的建议,我正在尝试通过 cookie 触发点击。 cookie 设置在单选按钮选择上。被切换的两个 div 之一需要设置为隐藏。
问题:最初的 if 语句没有触发点击。
if($.cookie('light-or-dark')) {
$($.cookie('light-or-dark') + '-radio').attr('checked', true).trigger('click');
} else {
$('#theme-schemes-dark').hide();
};
// the toggle on radio button change function
$('[name=light-dark-radio]').change(function(){
$('#theme-schemes-light').toggle('medium');
$('#theme-schemes-dark').toggle('medium');
// set cookie on toggle state
$.cookie('light-or-dark', '#theme-schemes-' + this.value, {expires:365, path: '/'})
})
HTML:
<div class="selection-wrap">
<label>
<input type="radio" name="light-dark-radio" id="theme-schemes-light-radio" value="light" checked>
Light
</label>
<label>
<input type="radio" name="light-dark-radio" id="theme-schemes-dark-radio" value="dark">
Dark
</label>
</div>
<!-- first div -->
<div class="selection-wrap" id="theme-schemes-light">
<a class="theme-scheme-btn color-box bg-blue" id="defaultThemeScheme" href="#">Light 1</a>
<a class="theme-scheme-btn color-box bg-yellow" href="#">Light 2</a>
</div>
<!-- second div - hidden by default -->
<div class="selection-wrap" id="theme-schemes-dark" style="display: none">
<a class="theme-scheme-btn color-box dark-color-blue" href="#">Dark 1</a>
<a class="theme-scheme-btn color-box dark-color-yellow" href="#" >Dark 2</a>
</div>
非常需要洞察力。
【问题讨论】:
-
这个对象是建立在 '$($.cookie('light-or-dark') + '-radio')' 的吗,console.log($($.cookie('light-or -dark') + '-radio')) 显示?
-
嗯...它返回为未定义。当运行与警报相同的命令时,我得到
[object Object] -
你能用这个单选按钮和两个 div 粘贴你的 html 代码吗..
-
添加了 html 代码并创建了一个小提琴。拿走小提琴中的初始 cookie jQuery 以查看它的工作原理。将其重新添加以查看是否损坏。
标签: javascript jquery html cookies click