2012-04-09 112 views
0

我正在学习如何创建JQuery插件。目前,我已经定义了一个插件如下:创建动态JQuery插件

$("#myDiv").myPlugin({ e: 0 }); 

如何添加一个计时器,为myplugin让每一位:

(function ($) { 
    $.fn.myPlugin = function (options) { 
     var defaults = { e: 0 }, 
     settings = $.extend({}, defaults, options); 

     var plugin = $.myPlugin.getHtml(options.e); 
     if ((plugin != null) && (plugin != undefined) && (plugin.length > 0)) { 
      this.html(plugin); 
     } 
    }; 

    $.myPlugin = { 
     getHtml: function (e) { 
      var s = ""; 
      if (e == 0) { 
       s = "1"; 
      } else { 
       s = "2"; 
      } 
      return s; 
     } 
    }; 
})(jQuery); 

目前,我使用下面的初始化这个插件的实例15秒我可以用计数器更新myDiv的html?

谢谢!

+0

您是否尝试过'setInterval'? – 2012-04-09 19:25:08

回答

0

下面是一段代码,你可以在插件内运行setInterval,如上面的注释所示。适应你的目的。查找setInterval获取更多信息。

var counter = 0; 
setInterval(function() { 
    counter += 1; 
    $.myPlugin.getHtml(counter) 
}, 15000); 
+0

我不熟悉函数的语法。如果我用你提供的代码替换$ .myPlugin.getHtml(counter),当插件初始化时定时器是否会开始? – user70192 2012-04-09 20:40:39

+0

将此代码与您的$ .fn.myPlugin函数一起使用。也许在最后。我所拥有的代码将每15秒运行一次getHtml方法,计数器加1。如果你愿意,你可以创建一个不同于getHTML在函数中使用的方法。 – 2012-04-10 13:39:31