アクションに対応するオプションを含む選択 (ドロップダウン リスト) があります。各アクションは、select の変更イベントで呼び出される汎用 JavaScript 関数に対応しています。したがって、次のようになります。
<select id="id-select-action" class="select-action right" value="Actions">
<option class="select-title">Actions</option>
<optgroup label="General Actions">
<option value="load_new_page('/url/to/new/page')">create a foo</option>
<option value="load_cbox('/url/to/cbox/contents')">manage tags</option>
</optgroup>
</select>
私のサーバー コードは、各オプションの値の文字列 (アクションの動作と表示方法に応じて JavaScript 関数の呼び出し) を動的に生成し、サーバーはパラメーター (ビューへの URL) も動的に生成します。
オプションの値文字列でjavascript関数を呼び出したい、選択の変更イベントにjqueryリスナーがあります。
$("#id-select-action").change(function() {
function_call = $("#id-select-action option:selected").val();
//How do I execute the function_call?
});
誰もが eval() を嫌うようです。. . しかし、これは適切なケースですか、それとも何か他のことをすべきですか? 私はこのHow to turn a String into a javascript function call?を見ました。. . . ただし、その中には、パラメーターを含む完全な関数呼び出し文字列ではなく、処理する名前しかありません。
私がこのようにしている理由は、アプリケーションの特定のタイプのビューの一般的なフレームワークを作成しており、ページごとにアクションが異なる (URL が異なる、および/または異なる JavaScript 関数を呼び出す) 可能性があるためです。 .
ありがとう!