Разрешить создание цепочек в плагине jQuery

Это был долгий день, и я не могу понять, почему один из моих пользовательских плагинов jQuery не будет цепным.

То, что я пытаюсь сделать, это написать строку символов по одному в элементе, а затем, когда закончите, удалите текст, а затем напишите следующую строку

Плагин:

(function($) {
  $.fn.writeDialogue = function(content) {
    var contentArray = content.split(""),
      current = 0,
      elem = this,
      write = setInterval(function() {
        if(current < contentArray.length) {
            elem.text(elem.text() + contentArray[current++]);
        } else {
          clearInterval(write);
          return this;
        }
      }, 100);
  };
})(jQuery);

В значительной степени я пытаюсь связать это таким образом:

$('#element').writeDialogue(textLine1).empty().writeDialogue(textLine2);

Не можете заставить его работать, есть идеи?

1 ответ

Решение

Это потому, что ваш код асинхронный. так что вы должны двигаться return this:

(function($) {
  $.fn.writeDialogue = function(content) {
    var contentArray = content.split(""),
      current = 0,
      elem = this,
      write = setInterval(function() {
        if(current < contentArray.length) {
            elem.text(elem.text() + contentArray[current++]);
        } else {
          clearInterval(write);
        }
      }, 100);
      return this; // THERE
  };
})(jQuery);
Другие вопросы по тегам