Как вызвать функцию Javascript, которая вложена в цикл forEach - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь изменить плагин для добавления входных тегов, который доступен здесь

Ниже я написал глупую версию моей проблемы. Плагин ищет на странице любой HTML с помощью класса 'tags-input' и создает для каждой группы набор функций для добавления и удаления тегов. Плагин запускает функцию addTag () каждый раз, когда обнаруживается событие нажатия клавиши.

[].forEach.call(document.getElementsByClassName('tags-input'), function (el) {
  function addTag(str){
    //code here adds a tag with a certain string "str"
  }
});

addTag("some string"); //function not found!

Я хочу иметь возможность вызывать функцию addTag () снаружи forEach l oop, когда ссылка из живого поиск выбран.

Я пытался добавить слушателей в l oop, однако, поскольку ссылки из живого поиска генерируются из базы данных после загрузки страницы, слушатели, кажется, не поднимают их.

Как я могу вызвать функцию addTag () из моего живого поиска?

Подобные вопросы не помогли с этой спецификацией c Проблема:

Вызов javascript внутри foreach l oop - ответа не дано

вызов javascript функция снаружи foreach l oop - насколько я могу судить, другая проблема

1 Ответ

2 голосов
/ 15 февраля 2020

Что-то вроде этого, нет?

Я понимаю, что вы пытаетесь сделать: но для простоты я использовал список строковых значений, чтобы представить другой возможный подход:

//  Why not create a list of functions which correspond to each list item?
var doSomeThingFuncList = [];

["Yes","No","Maybe"].forEach(function (item) {
  // Assuming that we will create a function for each list item that must be called outside of the loop
  doSomeThingFuncList.push(
    () => {
      alert("Do Something");
    }
  );
});
// The functions we have defined inside the for-loop can now be called from outside the forEach loop through indexing the function list defined at the beginning

doSomeThingFuncList[0]();

По сути, зная, какую функцию запустить, какой индекс массива, вы сможете вызывать эти функции через события на этих кнопках. Но я не уверен, что за этим стоит сценарий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...