Страницы

Поиск по вопросам

пятница, 26 апреля 2019 г.

Возникает ошибка при попытке вызова значения как функции

Здравствуйте!
Скажите, пожалуйста, как можно исправить вот такую ошибку: Uncaught TypeError: y is not a function
function test($t, y) { y($.trim($($t).val())); } function validateTest(z){ alert(z); } $('.requed').on('change', function() { test('#'+$(this).attr('id'), 'validate'+$(this).attr('data-var')); });


Я так понимаю ошибка возникает при попытке вызова значения как функции. Мне же нужно именно так. Полей у меня множество и исходя из значения ('validate'+значение из data-var) пришедшего из поля, будет вызываться определенная функция.


Ответ

В зависимости от контекста исполняемой функции. Если все находится в контексте window, то можно написать так:
function test($t, y) { var func = window[y]; func($.trim($($t).val())); } function validateTest(z){ alert(z); } $('.requed').on('change', function() { test('#'+$(this).attr('id'), 'validate'+$(this).attr('data-var')); });


В ином случае нужно заменить window на имя объекта-предка, содержащего эту функцию

Комментариев нет:

Отправить комментарий