2015-06-18 2 views
1

Я использую машинописный typeahead следующим образом:JQuery распаковывать массив параметров

$('my_elements').typeahead(options, dataset1, dataset2, ...). Однако количество наборов данных является динамическим, и я их вычисляю и сохраняю в массиве (наряду с опциями). Итак, как передать массив в список аргументов? Я попытался использовать функцию javascript apply:

$('my_elements').each(function(){ 
    typeahead.apply(this, params_array); 
}); 

Но ошибка в genereated: typeahead не определен! Итак, как использовать функцию apply в результате селектора jquery?

ответ

2

При попытке напрямую обратиться к typeahead, он пытается найти ссылку с этим именем в текущей области или в области предков.

Но так как typeahead является плагином, это свойство объекта прототипа jQuery, поэтому вам нужно получить к нему доступ через $.fn.typeahead.

Другой указал следует отметить, this внутри плагин должен ссылаться на JQuery объект не йот элемента так

$('my_elements').each(function() { 
    $.fn.typeahead.apply($(this), params_array); 
}); 

или

$.fn.typeahead.apply($('my_elements'), params_array); 
Смежные вопросы