【问题标题】:How to dynamically send variables from one function to another如何动态地将变量从一个函数发送到另一个函数
【发布时间】:2018-08-11 12:07:33
【问题描述】:

我是 jquery 的新手,并试图通过这样做来学习它。因此,当我操作脚本时,我想出了以下问题。有人可以指导我吗?

它是一个jquery插件,有两个文件,一个是jquery插件,另一个是直接的脚本代码,在HTML中提供。有一个简单的文件和另一个覆盖函数的文件

插件文件。

(function($){

    $.fn.animationCounter = function(options) {
        return this.each(function() {

                var element = $(this);

                var defaults = {
                    start: 0,
                    end: null,
                    step: 1,
                    delay: 1000,
                    txt: "kh"
                }

                var settings = $.extend(defaults, options);

                var nb_start = settings.start;
                var nb_end = settings.end;

                element.text(nb_start + settings.txt);

                var counter = function() {
                    // Definition of conditions of arrest
                    if (nb_end != null && nb_start >= nb_end) {
                        return;
                    }
                    // incrementation
                    nb_start = nb_start + settings.step;
                    // display
                    element.text(nb_start + settings.txt);
                }

                // Timer
                // Launches every "settings.delay"
                setInterval(counter, settings.delay);


        });
    };

})(jQuery);

HTML文档<script>标签中的代码如下;

$('.fb').animationCounter({
       start: 0,
       end: 25,
       step: 5,
       delay: 1000,
       txt: "km"
});
});

这个插件和功能工作正常。

我想做的是跟随;

  1. 我为默认部分(插件文件)分配了不同的变量
  2. 然后脚本需要从插件默认区域调用这些数据,并更新其变量或为其生成变量。

有人可以帮忙或指导我如何度过难关吗?

【问题讨论】:

  • 没有得到你想做的事?任何示例都将有助于了解您的要求
  • 嗨 Yajiv,如上所述,我有两个文件,一个文件是主要的 Jquery 插件,它包含默认变量等。在顶部提交的大块代码。
    第二个文件是一个
  • 如果你想以最快最肮脏的方式做到这一点,只需将你的变量分配给 window.variablename
  • 嗨,yitzhak...你能不能给我举个例子,让我试试看。

标签: javascript jquery wordpress jquery-plugins


【解决方案1】:

您可以使用 javascript 全局变量来执行此操作。

startValue = 500; // asign values globally.

然后在你的插件文件中使用它。

  $.fn.animationCounter = function(options) {
        return this.each(function() {

                var element = $(this);

                var defaults = {
                    start: window.startValue, // use the value
                    end: null,
                    step: 1,
                   // code continues

【讨论】:

  • 我试过这个方法,但不能正确,也许我在某个地方遗漏了什么。
  • 这是主JS文件代码。code $('#counter-block').ready(function () { var mycounter = $(".counter-block"); if ( mycounter.length > 0) { mycounter.each(function () { $('.fb').animationCounter({ start: mycounter.start, end: mycounter.stop, step: mycounter.step, delay: mycounter.delay, txt: mycounter.txt }) }); } }(jQuery));code
  • 当我这样说时,插件输出甚至不会显示在 HTML 页面上。正如我在问题(小代码块)中提到的那样,当我将脚本与手动数据一起放置时,它可以完美运行。仍然无法找到完成这项工作的缺失部分。
猜你喜欢
  • 1970-01-01
  • 2021-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-08
  • 2017-11-04
  • 1970-01-01
相关资源
最近更新 更多