在DIV调整大小时未正确设置变量 - 添加了附加信息

时间:2016-05-08 22:00:09

标签: javascript jquery

var globaltest = 400;
$('.Quick-Sidebar-Toggle').click(function() {

    var QSWSW = $(".Quick-Sidebar-Wrapper").width() == globaltest ? "0" : globaltest;
    alert(globaltest + ", " + QSWSW);

    $('.Quick-Sidebar-Wrapper').animate({
       width: QSWSW + "px"
    }, {
        duration: 1000,
        easing: 'easeOutBounce'
    });

});

$('.Quick-Sidebar').bind('resize', function(e) {
    globaltest = $(this).width();
});

通过我实施的测试,DIV调整大小后变量正在改变;

$('.PannelLogo').click(function(e) {
    alert(globaltest);
});

然而,在检查单击以通过;

再次切换快速访问侧面板时
alert(globaltest + ', ' + QSWSW);

如果我没有调整大小,它会说'400,0'然而,如果我调整大小,它会说宽度的像素值两次,即&#;; 520,520'

尝试了JSFiddle here,但没有工作......您可以看到实时版本here,您可以点击右上角的红色方块打开,查看警报,调整大小,单击徽标以查看变量是什么,但是再次单击以隐藏时,警报中显示的变量是错误的...

更新我

基本上调整我的脚本设置globaltest所以对于var QSWSW = $(".Quick-Sidebar-Wrapper").width() == globaltest ? "0" : globaltest;它基本上意味着如果宽度不是0那么它应该是,反之亦然,打开它。

如果您调整大小,但如果您执行调整大小,则无效...

更新II

我仍然没有解决这个问题,并尝试过几十次尝试,包括以下内容;

$('.Quick-Sidebar-Toggle').click(function() {

    if (QSWSCW == globaltest) {
        QSWSW = 0;
    } else {
        QSWSW = globaltest;
    }

    $('.Quick-Sidebar-Wrapper').animate({
       width: 'toggle'
    }, {
        duration: 1000,
        easing: 'easeOutBounce'
    });

});

1 个答案:

答案 0 :(得分:0)

您不需要预定义宽度:

$('.Quick-Sidebar-Toggle').click(function() {

    $('.Quick-Sidebar-Wrapper').animate({
       width: 'toggle'
    }, {
        duration: 1000,
        easing: 'easeOutBounce'
    });

});

......只需切换它!