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);

不能让它工作,有什么主意吗?

这是因为你的代码是异步的。所以你必须移动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);

最新更新