-1

関連するイベントがトリガーされたときに、スクロールおよびドラッグ イベントにフックし、要素を回転させて別の要素を指す jQuery プラグインを作成しています。基本的に、私のプラグインはイベントを検出し、正しい角度を計算し、それに応じてサードパーティのプラグインを使用して要素を回転させます。より良い説明については、私のプラグインのデモを見ることができます。

特定の回転プラグインの使用を強制したくないので、回転関数の名前は異なる場合があります。現時点では、カスタム関数名を許可するために eval を使用していますが、これを行う別の方法を見つけたいと思っています。グーグルを試しましたが、これまでのところ解決策が見つかりません。

それで、これを回避する方法はありますか?回転関数の名前は、settings.rotateFunction に保存されます。

eval("$(this)." + settings.rotateFunction + "(angle)");

これまで「new Function(codeToEval)」メソッドを試してきましたが、これは何らかの理由で $(this) の使用を妨げます。

4

2 に答える 2

5

Javascript では、次の 2 つの表記法を使用してオブジェクト メンバー (プロパティまたは関数) にアクセスできます。

  • object.memberName
  • object["memberName"]

2 つ目は、メンバーが設計時ではなく実行時に不明な場合に特に役立ちます。そのため、次の方法で回転関数を呼び出すことができます。

$(this)[settings.rotateFunction](angle);
于 2013-02-17T20:47:00.513 に答える
4

次の構文を使用します。

$(this)[settings.rotateFunction](angle);
于 2013-02-17T20:46:51.090 に答える