首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jQuery中使用类似于其他语言中的静态变量的变量

如何在jQuery中使用类似于其他语言中的静态变量的变量
EN

Stack Overflow用户
提问于 2012-10-05 00:50:06
回答 3查看 45关注 0票数 0

我是一组共享与css维度相同的类名。在单击特定的<div>时,我

填充到屏幕的宽度和高度,并覆盖其他<div>s。它工作得很好。但问题是,当我再次点击时,我已经失去了它的原始尺寸,以恢复到它的原始尺寸。下面是我的代码:

代码语言:javascript
复制
 var isFullscreen = false;
  $('.item').click(function(){
    var d = {};
    var speed = 900;
    if(!isFullscreen){ // MAXIMIZATION
        d.width = $(window).width();;
        d.height = $(window).height();; 
        isFullscreen = true;
        $('.item').hide();
        $(this).show();
        $(this).animate(d,speed)    
    }
    else{ // MINIMIZATION            
        **d.width = $(this).css('width');**
        **d.height = $(this).css('height');**            
        isFullscreen = false;
        $(this).animate(d,speed);
        $('.item').show();
    }
    })

我试图通过保存它的原始尺寸并在第二次单击时使用它们来使用类似于静态变量的东西。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-05 02:42:33

我能够做到这一点,在我调整大小之前保存我的高度和宽度,并在以后使用它们:下面是我修改的代码:你可以弄清楚,我在这些行中添加了**……

代码语言:javascript
复制
var isFullscreen = false;
  var d = {};
  **var test = {};**
  $('.item').click(function(){
    var speed = 900;
    if(!isFullscreen){ // MAXIMIZATION
        **test.width = $(this).css('width');**
        **test.height = $(this).css('height');**
        d.width = $(window).width();
        d.height = $(window).height();
        isFullscreen = true;
        $('.item').hide();
        $(this).show();
        $(this).animate(d,speed)    
    }
    else{ // MINIMIZATION            
        d.width = test.width;
        d.height = test.height;            
        isFullscreen = false;
        $(this).animate(d,speed);
        $('.item').show();
    }
})

感谢你们的支持。

票数 0
EN

Stack Overflow用户

发布于 2012-10-05 00:53:30

您当前每次单击该项目时都会重新声明d变量,使其成为一个空对象。如果您将var d = {}声明移到单击函数之外,那么您将能够做到这一点。

票数 0
EN

Stack Overflow用户

发布于 2012-10-05 01:06:21

尝试使用prototype属性。这将确保它的add instances具有与其关联的相同值。

代码语言:javascript
复制
function d(){
}

d.prototype.width=$(window).width();
d.prototype.height=$(window).width();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12732012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档