У меня есть выбор (выпадающий список) с параметрами, которые соответствуют действиям.Каждое действие соответствует общей функции 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-адреса для представлений).
У меня есть прослушиватель jquery для события изменения для выбора, который я хочу вызвать функцией javascript в строке значения в опции.
$("#id-select-action").change(function() {
function_call = $("#id-select-action option:selected").val();
//How do I execute the function_call?
});
Кажется, все ненавидят eval ().,,но это подходящий случай для этого, или я должен делать что-то еще?Я посмотрел на это Как превратить строку в вызов функции JavaScript? .,,но в этом у вас есть только имя, с которым нужно иметь дело, а не полная строка вызова функции, включая параметры.
Причина, по которой я это делаю, заключается в том, что я создаю общую структуру длянекоторые типы представлений нашего приложения, и действия могут быть разными (и иметь разные URL и / или вызывать разные функции javascript) для каждой страницы.
Спасибо!