Как повторно использовать функцию jquery

#jquery

#jquery

Вопрос:

Эй, ребята, у меня проблема с повторным использованием кода:

 YT_ready(function() {
  $("iframe[id]").each(function() {
      var identifier = this.id;
      var frameID = getFrame(identifier);
      if (frameID) { //If the frame exists
          players[frameID] = new YT.Player(, {
              events: {
                  'onStateChange': onPlayerStateChange
              }
          });
      } 
  });
  

});

попробовал это..

    slide('code', function() {
   YT_ready();
   });
  

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

1. Какую именно часть кода вы хотите повторно использовать? Инициализация проигрывателя?

2. Попробуйте function YT_ready() {}; вместо анонимной (?) функции, которая у вас есть сейчас.

3. Это в jQuery, поэтому оно не будет работать, если я использую функцию YT_ready();

4. YT_ready(), похоже, исходит из API YouTube. Парень установил анонимную функцию в качестве обработчика и хочет повторно использовать тот же обработчик в другом месте, но не может ссылаться на него, потому что у функции нет имени.

5. О-о-ха-ха! Я исправил это, спасибо @MKaama

Ответ №1:

Попробуйте это:

 var handler=function(thi) {
  $("iframe[id]").each(function() {
      var identifier = thi.id;
      var frameID = getFrame(identifier);
      if (frameID) { //If the frame exists
          players[frameID] = new YT.Player(, {
              events: {
                  'onStateChange': onPlayerStateChange
              }
          });
      } 
};
YT_ready(function(){handler(this)});
slide('code', function(){handler(this)});
  

Мне пришлось добавить некоторое обертывание, чтобы получить правильное значение этого в обработчике.