申し訳ありませんが、より良いタイトルを考えることができませんでした。 :)私はこれを理解しようとしている時間の私の髪を引っ張ってきたヘルプが必要:奇妙なJavaScriptの動作...別の変数が設定されたときに1つの変数が変更される
ここ行き、
。
私は、以下の機能を持っている:ここでは
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
変数の "バックアップ"を作っています。
3行目をvar oldstyles = {};
に変更したところ、正常に動作しているようです。
これはそうではありません。後で私はスタイルをリセットしたいので、私は古いスタイルを持つ必要がありますが、変更したものだけです。
oldstyles
がstyles
の場合、なぜ「ブレーク」するのかわかりません。
私は、あなたが理解するのに十分なコードを与えていることを願っています。 :)
不明な点がある場合は、お尋ねください。
ありがとうございました。
はあなたの助けと迅速な対応をありがとうございました! :)あなたが最初だったので、私はあなたにチェックをしています。 – tone7