Javascript jQuery-切换元素并使用cookie保存它
我正在尝试使用jQuery Cookie插件和jQuery切换功能: 每当有人切换launchpad时,我都想获取它的当前状态 例如,如果有人切换它,它就隐藏了,我想提醒它现在隐藏了,反之亦然 这是我当前的代码: jQuery:Javascript jQuery-切换元素并使用cookie保存它,javascript,jquery,html,cookies,Javascript,Jquery,Html,Cookies,我正在尝试使用jQuery Cookie插件和jQuery切换功能: 每当有人切换launchpad时,我都想获取它的当前状态 例如,如果有人切换它,它就隐藏了,我想提醒它现在隐藏了,反之亦然 这是我当前的代码: jQuery: $(function(){ if($.cookie){ //By default, if no cookie, just display. $("#launchpad")
$(function(){
if($.cookie){
//By default, if no cookie, just display.
$("#launchpad").toggle(!(!!$.cookie("toggle-state")) || $.cookie("toggle-state") === 'true');
}
$('#toggle-launchpad').on('click', function(){
$("#launchpad").toggle(
if($(this).is(":visible")){
alert("visible!!");
}else{
alert("not visible");
}
);
//Save the value to the cookie for 1 day; and cookie domain is whole site, if ignore "path", it will save this cookie for current page only;
$.cookie("toggle-state", $("#launchpad").is(':visible'), {expires: 1, path:'/'});
});
});
HTML:
我想我不能在toggle函数中使用if函数。有人能解决我的问题吗?如果有:
$("#launchpad").toggle(400, function() {
if($(this).is(":visible")){
alert("visible!!");
}else{
alert("not visible");
}
});
该代码将在切换功能完成时执行。请注意,toggle函数是异步的,因此在隐藏/显示div之前可能会调用$.cookie调用。尝试:
$("#launchpad").toggle(400, function() {
$.cookie("toggle-state", $("#launchpad").is(':visible'), {expires: 1, path:'/'});
});
并非400是动画将以毫秒为单位的默认时间。请参见
编辑:如果您的评论是关于代码的第一部分,我会这样写:
if ($.cookie && $.cookie("toggle-state")) && $.cookie("toggle-state") === 'false') {
$("#launchpad").hide();
}
这假设div在默认情况下是可见的,即不被CSS隐藏那么如何检查启动板是可见的还是隐藏的,并相应地显示警报?我在JSFiddle上创建了一个小示例:。但是,您仍然可以在作为切换函数调用的第二个参数的匿名函数内执行$this.is':visible'或$launchpad.is':visible'。
if ($.cookie && $.cookie("toggle-state")) && $.cookie("toggle-state") === 'false') {
$("#launchpad").hide();
}