2016-05-21 3 views
0

Мне нужно иметь возможность вызывать функции в jquery на основе переменных, подобных windowvarname в javascript. Это не дублированный вопрос, потому что другой ответ для javascript, а не jquery.с использованием переменных для вызова функций jquery

Например,

var name = 'test1'; 

function test1() { 
    alert('test1 called'); 
} 

function test2() { 
alert('test2 called'); 
} 

name(); 

Я хочу сделать это, чтобы я мог динамически вызывать функции, основанные на результатах массива.

Я искал высокий и медленный, но, похоже, я могу справиться с этим.

+1

возможно [это] (http://stackoverflow.com/questions/359788/how-to-execute-a-javascript-function-when-i-have-its-name -as-a-string) помогает – LiranBo

+0

[demo] (https://jsfiddle.net/31ddsgdx/) почему бы не установить функцию в переменную? – guradio

+0

[попробуйте это] (https://jsfiddle.net/h4f95z5o/) попробуйте это – JYoThI

ответ

1

Лучшим подходом будет создание Module и сохранение всех ваших функций там с именами переменных как properties этого модуля.

var name = 'test1'; 
 

 
var func = { 
 
    test1: function() { 
 
     alert('test1 called'); 
 
    }, 
 
    test2: function() { 
 
     alert('test2 called'); 
 
    }, 
 
    test3: function() { 
 
     alert('test3 called'); 
 
    }, 
 
    test4: function() { 
 
     alert('test4 called'); 
 
    }, 
 
    test5: function() { 
 
     alert('test5 called'); 
 
    } 
 
} 
 

 
var array = ['test1', 'test2', 'test3', 'test4', 'test5']; 
 

 
func[name](); 
 
func[array[3]](); 
 
func[array[array.length - 1]]();

+0

Удивительно, большое спасибо. Я добавляю, что сталкивался с этим шаблоном проектирования в своих поисках, но это объяснение было очень ясным. – Danbuntu

+0

@ Danbuntu вы приветствуете) –

Смежные вопросы