1

storedataオブジェクト イベント onclick イベント ハンドラを動的に変更しながら名前付き変数にアクセスしたい

function update_data(storedata)
{
    obj.onclick=function() {remover(this,storedata); };
}

内部関数内の storedata にアクセスできません。

alert(obj.onclick) を使用しようとすると、結果は remover(this,storedata) になります。変数がその値に置き換えられていないようです!!

何か案は?

4

2 に答える 2

2

「交換」です。問題は、あなたがそれを検査しようとしている方法です。

関数をアラートすると、関数の文字列化されたバージョンが取得されます...これには、すべての変数のシリアル化ではなく、変数名が含まれます。

実際に関数を呼び出すと、変数は指定した値で使用可能になります。

于 2012-04-24T15:28:24.367 に答える
0

とにかくイベントハンドラーを持っているオブジェクトのプロパティとしてアタッチする必要があります。storedata が文字列で、HTML5 を使用している場合、たとえば次のように実行できます。

function update_data(storedata){
   obj.dataStoredata = storedata;
   obj.onclick = function(){
      remover(this);
    };
}

関数内では、データを含むものにremover簡単にアクセスできthis.dataStoredataます。

于 2012-04-24T15:30:06.847 に答える