Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么jquery插件中的变量中有函数调用_Jquery_Plugins_Function - Fatal编程技术网

为什么jquery插件中的变量中有函数调用

为什么jquery插件中的变量中有函数调用,jquery,plugins,function,Jquery,Plugins,Function,我想试着理解这些结构的用法 因为我没有 如果我在插件中看到这一点 function configuration(user_settings) { //Override the default settings with the user settings defaults = { time_in_seconds: 3600, time_format: 'ss', tick: function(timer, time_in_seconds, formatted_time) {},

我想试着理解这些结构的用法 因为我没有

如果我在插件中看到这一点

function configuration(user_settings) {
    //Override the default settings with the user settings
 defaults = { 
 time_in_seconds: 3600,
 time_format: 'ss',
 tick: function(timer, time_in_seconds, formatted_time) {},
 buzzer: function(timer) {},
 autostart: true
  };
  return $.extend(defaults, user_settings);
}

在插件中调用勾号并设置新值 但是,当我把这些行注释掉时,一切仍然有效

其背后的总体思路是什么。 我看了看照片,但没有解释

编辑

如果插件迭代,它将设置tick的参数

settings.tick(timer, current_time, formatted_time);
我如何设置勾号的用户设置,这样仍然可以使用这些参数

换言之,在这些执行{}括号之间获得一些东西

编辑 我做了更多的测试,很明显,在任何时候都可以通过任意数量的参数。就像

$("#countdown_update").createTimer({time_in_seconds: ( delay? delay/1000 : minTimeBetweenUpdates/1000 ),
        tick:function(one,two){$('#test').html('test '+one+two);}});
它将在输出中为您提供计时器对象和时间(以秒为单位)


谢谢,Richard,它很可能仍然有效,因为插件已经在代码中指定了默认值。通过注释掉您的行,插件将恢复为默认配置。

它很可能仍然有效,因为插件已经在代码中指定了默认值。通过注释掉您的行,插件将恢复为默认配置。

此代码使用用户设置扩展默认对象。因此,用户设置将覆盖默认对象中的任何类似命名属性。但是,如果用户设置对象中不存在默认值中的任何属性,则这些属性将添加到用户设置对象并返回给调用者(作为新对象)。

此代码使用用户设置扩展默认值对象。因此,用户设置将覆盖默认对象中的任何类似命名属性。但是,如果用户设置对象中不存在默认值中的任何属性,则这些属性将添加到用户设置对象中,并返回给调用者(作为新对象)。

当您注释掉“勾选”函数时,您正在删除该函数的默认值。它可能仍然有效,因为代码足够聪明,如果没有值,就不会使用函数


每次计时器迭代时,可能都会调用tick函数。此处显示的默认值是一个空函数,因此它不会执行任何操作,但您可以使用一个执行某些操作的函数覆盖tick(例如,让它每次都弹出一个警报,只是为了看到它工作)。

在注释掉“tick”函数时,您正在删除该函数的默认值。它可能仍然有效,因为代码足够聪明,如果没有值,就不会使用函数



每次计时器迭代时,可能都会调用tick函数。此处显示的默认值是一个空函数,因此它不会执行任何操作,但您可以使用一个执行某些操作的函数覆盖勾号(例如,让它每次都弹出一个警报,只是为了看到它工作)。

您要注释哪些行?你用这个写的代码是什么样子的?里面有记号的代码$(“#倒计时更新”).createTimer({time_in_seconds:30});你在评论什么台词?你用这个写的代码是什么样子的?里面有记号的代码$(“#倒计时更新”).createTimer({time_in_seconds:30});好的,但是你能解释一下为什么会这样做吗。它有什么用?默认值很方便。插件设计器不要求用户设置每个选项,而是默认设置一些常用选项的值。您可以随意覆盖它们。好的,但是您可以解释一下为什么会这样做。它有什么用?默认值很方便。插件设计器不要求用户设置每个选项,而是默认设置一些常用选项的值。你可以随意推翻它们。谢谢你,我没有很好地解释我自己。我了解设置变量,但我没有将设置勾选作为用户设置。你是怎么设定的。为什么变量中有一个函数?这是某种回调。和蜂鸣器一样!谢谢,我不是很好地解释自己。我了解设置变量,但我没有将设置勾选作为用户设置。你是怎么设定的。为什么变量中有一个函数?这是某种回调。和蜂鸣器一样!那么,这些是回调函数?并且在迭代中设置变量。我能理解。我如何在{}括号内给它一些事情做?因为我可以理解传递一个完整的语句,比如:function(){dosomething},但是我不能使用迭代中设置的变量?希望这是有意义的。您只需将键和值添加到以下内容:$(“#倒计时_更新”).createTimer({time_in_seconds:30,tick:function(){alert(“HI!”);});或者其背后的想法是创建这样的用户设置$(“#倒计时_update”).createTimer({time_in_seconds:30,tick:function(一、二、三{dosomething})其中参数只是假值,因为实际值是在迭代中设置的,如下所示。->settings.tick(timer,current_time,formatted_time);谢谢@Mervyn,但是当默认设置像作者那样编写时,必须使用三个参数,true?因为在代码中,下面的语句是:settings.tick(计时器、当前时间、格式化时间);否则会导致错误,对吗?或者是否有可能在任何时候将任意数量的参数传递给变量中的函数,无论它们是否声明?–最简单的方法是替换已有的函数。因此,这些是回调函数?并且变量在迭代中设置我可以理解。我如何在{}括号内给它一些事情做呢?因为我可以理解传递一个完整的语句,比如:function(){do something},但是我不能使用