我一直在使用jQuery和jQuery Cookie的滑动面板,它非常接近完美。
$(function () {
if ($.cookie('myCookieName')) {
$('#slideOut').css('right', '-345px');
$(".slideClose").addClass('hideBtn');
$(".slideOpen").removeClass('hideBtn');
}
});
$('#slideClick').click(function () {
var it = $(this).data('it') || 1;
switch (it) {
case 2:
$(this).parent().animate({
right: '-345px'
}, {
queue: false,
duration: 500
});
$(".slideClose").addClass('hideBtn');
$(".slideOpen").removeClass('hideBtn');
break;
case 1:
$(this).parent().animate({
right: '-0px'
}, {
queue: false,
duration: 500
});
$(".slideOpen").addClass('hideBtn');
$(".slideClose").removeClass('hideBtn');
break;
}
it++;
if (it > 2) it = 1;
$(this).data('it', it);
//$.cookie('myCookieName', '1')
var date = new Date();
var minutes = 1;
date.setTime(date.getTime() + (minutes * 60 * 1000));
$.cookie("myCookieName", "foo", { expires: date });
});
当面板关闭时,只需点击两下即可打开它,有人建议更改"案例1"和"案例2"但是现在只需要两次点击即可关闭面板,任何帮助都会被批评。
这是fiddle。
由于
答案 0 :(得分:1)
您的问题是您的首发案例。它需要2次点击的原因是因为您的第一次点击是将侧边栏滑出,但它已经用完了。
变化:var it = $(this).data('it') || 1;
收件人:var it = $(this).data('it') || 2;
之后应该是好的。
如果您想确保避免使用Cookie的双击问题,请确保将该案例添加到Cookie功能以更新数据。
$('#slideClick').data('it', 1);
答案 1 :(得分:0)
使用.dblclick()
代替.click()
。这里有更多信息:https://api.jquery.com/dblclick/和修改过的小提琴:https://jsfiddle.net/u8ccv03s/4/