вызов функции по названию переменной
Добрый день.
Вопрос следуший. var id_name_func='0'; my_func+id_name_func+(text); my_func0(text) { alert(text); } Не могу вызвать ф-цию my_func0(), напрямую тоже не могу т.к. цифра (т.е. id) в конце функции может быть разным. Т.е. через переменную нужно дополнить название функции и вызвать её. Но как незнаю, пробывал по всякому. Заранее спасибо. |
<html> <head> <script> var id_name_func= '0'; function my_func0(text) { alert(text); } </script> </head> <body> <input type="button" value="Call" onclick="*!*window['my_func'+id_name_func]('text');*/!*" /> </body> </html> |
а есть еще какиенебудь методы?
|
>а есть еще какиенебудь методы?
Сделать массивом, а не заниматься бредом. |
Вложений: 1
почему бредом то сразу?
просто написал оболочку для окон для своего проекта. т.е. из чтобы было достаточно написать <div id="swim_window0"><b>Сюда прокси:</b><textarea id="prxlsist"></textarea></div> и запихнуть только нужные импуты туда, а все остальное типа кнопки сабмит, присвоения классов и т.д. он засунет в этот див сам. и получится вот это: http://javascript.ru/forum/attachmen...1&d=1298288297 Но тут еще 1 дело, он отправляет запросы на сервер, без асинхронности чтобы можно было в несколько потоков. И для каждого окна со своим id будет своя функция. т.е. при клике на кнопку GO (не важно какой формы) срабатывало событие $('*[id^=go_stop]').click(function(){ //тут разный код дефолтный для всех окон и потом через регулярные выражения выташить id и вызвать функцию с нужным id return my_func+id(); }); Я не представляю как это сделать через массив, т.к. хочется тупо объявлять в отдельном файле название функций типа function my_func0() { alert('privet'); } и больше не очем не думать. а если через массив то мне придется присваивать этому массиву саму функцию, что не есть хорошо для меня. Или я не прав? |
Функция выполняющая одни и те же действия действия должна быть одна. В самой функции надо добавить всего одно простейшее условие дабы отличать один элемент от другого.
|
Aetae,
вы имеете ввиду проверять какая кнопка вызвала функцию? т.е. if(this.id.match(/[0-9].{0,}$/i)=='0') { return my_func0(); }else if(this.id.match(/[0-9].{0,}$/i)==1') { return my_func1(); } и т.д. да это можно, но если таких будет 100? |
все спасибо нашел http://javascript.ru/accessors
|
window['go_stop_swim'+this.id.match(/[0-9].{0,}$/i)](); |
Часовой пояс GMT +3, время: 10:02. |