Javascript 允许在jQuery插件中链接

Javascript 允许在jQuery插件中链接,javascript,jquery,plugins,chaining,Javascript,Jquery,Plugins,Chaining,这是漫长的一天,我似乎不明白为什么我的一个自定义jQuery插件无法链接 我要做的是在一个元素中一次写出一行字符,然后在完成后删除文本,然后写出下一行 插件: (function($) { $.fn.writeDialogue = function(content) { var contentArray = content.split(""), current = 0, elem = this, write = setInterval(functi

这是漫长的一天,我似乎不明白为什么我的一个自定义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);

无法让它工作,有什么想法吗?

这是因为您的代码是异步的。因此,您必须移动
并返回此

(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);
(函数($){
$.fn.writeDialogue=函数(内容){
var contentArray=content.split(“”),
电流=0,
elem=这个,
write=setInterval(函数(){
if(当前
这是因为您的代码是异步的。因此,您必须移动
并返回此

(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);
(函数($){
$.fn.writeDialogue=函数(内容){
var contentArray=content.split(“”),
电流=0,
elem=这个,
write=setInterval(函数(){
if(当前
U需要返回该值,以便它返回jquery函数的实例。因此,在setInterval.U之后,需要返回它,以便它返回jquery函数的一个实例。在setInterval之后。为了跟进,我如何让代码排队,如果我在上面的例子中运行它(链接),它将尝试同时写出这两个…你需要在clearInterval之后为它添加一个完成的回调,我想有人能告诉我为什么需要这个链接,以及链接到底做什么吗?为了跟进,我如何让代码排队,如果我在上面的例子中运行它(链接),它将尝试同时写出这两个…你需要在clearInterval之后为它添加一个完成的回调我想有人能告诉我为什么需要链接,以及链接到底做了什么吗??