抱歉想不到更好的标题。 :)需要帮助:奇怪的JavaScript行为......当另一个变量被设置时,一个变量被更改
这里去,
我一直在拉我的头发几个小时试图弄清楚这一点。
我有以下功能:
function changeCss(elem, styles) {
var oldstyles = styles;
elem.css(styles)
for(var key in styles){
var oldstyle = input.css(key);
oldstyles[key] = oldstyle; //this line is the issue
elem.data('oldstyle', oldstyles)
}
}
这里是它如何被称为一个例子:
var theStyle = { border: '1px solid red'};
//elem is a jQuery object of an HTML element
changeCss(elem, thestyle);
的问题是,所述注释行(第8行)后,styles
的值是什么oldstyles
的值是。
因此,举例来说,如果没有设置边框特定元素的CSS属性,即不确定,styles
的价值将是{ border: "" }
这怎么可能呢?这就是为什么我正在剔除oldstyles
;我正在做一个styles
变量的“备份”。
我改变了第三行var oldstyles = {};
,它似乎工作正常。
但是,这不是它应该如何,我需要有旧的风格,因为后来我想重置样式 - 但只有我改变了。
我不明白为什么它“破”oldstyles
等于styles
?
我希望我给你足够的代码让你理解,并且我正在把自己扩展得足够好。 :)
如果有什么不清楚的地方,请询问。
谢谢你的任何见解和帮助。
非常感谢您的帮助,响应速度快! :)自从你第一次以来,我给你支票。 – tone7 2012-02-13 09:29:52