【问题标题】:how to write plugin with setInterval in it如何在其中编写带有 setInterval 的插件
【发布时间】:2017-08-12 08:34:46
【问题描述】:

我正在尝试编写一个插件。我的 jQuery 不好。我读了很多例子我的英语不好......所以我不太了解它们。 请帮帮我,如果你能解释得简单些。

这是我的代码:

HTML:

    <div class="coming back-countdown">
        <h1>WWW.<span id="spin">STACKOVERFLOW</span>.COM</h1>
    </div>

java脚本:

;   
(function($) {
    $fn.myPlugin = function() {
        var settings = $.extend({
            beforeStop: 2000;
            betweenStop: 500;
            charChangeInterval: 100;
        });

        function repeat() {
            var $this = $(this);
            var origText = $this.text(), newText = '';
            var myArr = origText.split("");
            var text = origText.split("");
            for (i = 0; i < text.length; i++) {
                var handle = setInterval(function (i) {
                    myArr[i] = String.fromCharCode(Math.random() * 26 + 65);
                    $this.text(myArr.join(""));
                }, charChangeInterval, i);
                setTimeout(function (handle, i) {
                    clearInterval(handle);
                    myArr[i] = text[i];
                    $this.text(myArr.join(""));
                }, i * betweenStop + beforeStop, handle, i);
            }
        }
        repeat();
        setInterval(repeat,20000);
    };
}(jQuery));

【问题讨论】:

  • 具体问题和疑问是什么?
  • 它不起作用。我不知道如何传递默认值。我不知道这是调用函数并使用 setinterval 的正确方法。

标签: javascript jquery plugins jquery-plugins setinterval


【解决方案1】:

要拥有默认设置并允许用户覆盖它们,请在此处查看如何执行此操作:https://learn.jquery.com/plugins/advanced-plugin-concepts/

要调用您创建的插件,请使用:

$.myPlugin({beforeStop:1000}); // running the plugin and overriding beforeStop

然后你有一个重复功能。添加您正确调用它的底部,直接并通过 setInterval。在函数中你可以做一些有趣的事情,但我相信你想做的任何事情都可以做得更简单。如果您需要这方面的帮助,请说明您要做什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多