2012-02-16 6 views
-1

私の問題は、関数内で宣言された変数を上書きすることができますが、関数のすべての呼び出しではできません。ここに私の説明は次のとおりです。オンデマンドでJavascript関数の変数を上書きする

はのは、ページがロードされたとき、私は3つのHTML要素を持っているとしましょう:

<div id="1"></div> 
<div id="2"></div> 
<div id="3"></div> 
<div id="4"></div> 

私は、これらの各要素を操作するJavaScript関数を実行すると「れるonmousemove」イベントに関数を適用します。関数呼び出し中に宣言された変数があり、変数の値を要素に固有に保つために上書きしてはいけません(さもなければ、マウスの動きは上書きされ、最後の要素に対してのみ機能します)。私は、ローカル変数を宣言することでこれが実現できることを知っています。

私の問題は次の部分である。この後

すべてが行われている、私はそれが最初に走った同じ要素で再度実行するための初期機能をトリガーページ上の他のイベントを持っていますが、違うとこれで元の値を上書きする必要があります。私はコードを投稿しますが、それは数千行のコードなので、皆さんが私が何を話しているのか理解してくれることを願っています。

私は、関数を複製し、変数を別々に宣言することでこの問題を解決できると思いますが、それは決していい考えではない大きなコードブロックの2つのコピーを持つことを意味します。それを避けてください。

ありがとうございます!

+0

説明した内容は、10行未満のコードしか必要としません。関連するセクションをコピーしてください。 – caleb

+1

あなたが持っているものと達成しようとしているものの単純化(簡単な例)を投稿しようとしているかもしれません – Jaime

+0

ええ、私は説明/理解するのが難しいと考えました。私は単純化されたバージョンを書いてそれを投稿しようとします。皆さんありがとう。 – aelisenko

答えて

0

私は自分が望むものを達成する方法を考え出しました。私はオブジェクトに自分のコードを修正しました。私が最初にコードを実行すると、各要素には変数のグローバル変数(window [element + 'obj'])を持つ独自のオブジェクトがあり、各要素の値を別々に保つプロトタイプメソッドで要素を操作します。特定の要素については、そのオブジェクトのすべての値をリセットするメソッドを呼び出します。私はこの問題に遭遇する人のために後でいくつかのサンプルコードを投稿しようとします。

ありがとうございます!

関連する問題