双击关闭侧面板

时间:2016-06-30 22:07:57

标签: jquery

我一直在使用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

由于

2 个答案:

答案 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/