千家信息网

怎么向jquery函数传递多个参数

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要讲解了"怎么向jquery函数传递多个参数",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么向jquery函数传递多个参数"吧!// De
千家信息网最后更新 2026年11月03日怎么向jquery函数传递多个参数

这篇文章主要讲解了"怎么向jquery函数传递多个参数",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么向jquery函数传递多个参数"吧!

  // Deferred helper

  when: function( subordinate ) {

  var i=0,

  resolveValues = core_slice.call( arguments ),

  length =resolveValues.length, //参数个数

  //统计没有被解决的成员,

  //如果参数个数不为1,则remaining为参数个数,

  //如果参数个数为1且参数是 Deferred(延迟)对象则remaining为参数个数1;否则为0

  remaining=length !==1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,

  //初始化主延时对象,如果参数本身是一个延时对象则用参数即可,否则新建。

  deferred=remaining===1 ? subordinate : jQuery.Deferred(),

  // Update函数处理resolve和progress的值

  updateFunc=function( i, contexts, values ) {

  return function( value ) {

  contexts[ i ] =this;

  values[ i ] =arguments.length > 1 ? core_slice.call( arguments ) : value;

  //成员延时(Deferred)对象生成进度通知的时候主延时(Deferred)对象调用进行中的回调

  //后面代码。progress( updateFunc( i, progressContexts, progressValues),往进度回调列表添加函数的时候第三个参数就是progressValues        if( values=== progressValues ) {

  //调用进行中的回调(progressCallbacks )

  deferred.notifyWith( contexts, values );

  //否则成员延时(Deferred)对象解决的时候才进入该分支判断

  //需要等待解决的延时(Deferred)对象数量减一,

  //判断还有没有需要等待解决的延时(Deferred)对象,如果有,则判断失败返回

  //如果没有则进入分支子代码,执行主延时(Deferred)对象解决deferred.resolveWith(…)

  } else if ( !( --remaining ) ) {

  //最终执行到此步的时候values已经变成所有成员延时(Deferred)对象resolve的参数序列

  deferred.resolveWith( contexts, values );

  }

  };

  },

  progressValues, progressContexts, resolveContexts;

  //对于没有参数或是有唯一一个非延时对象的,直接认为resolved,也就是后面if ( !remaining ) 分支的处理

  //对于参数就是一个延时对象的直接将这个延时对象的deferred.promise()返回即可

  //对于参数多于一个的才进入该分支,添加监听器监听成员被解决

  if ( length > 1 ) {

  progressValues =new Array( length );

  progressContexts =new Array( length );

  resolveContexts =new Array( length );

  for ( ; i < length; i++ ) {

  //遍历参数成员,只有成员是延时(Deferred)对象的才需要监听器

  if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {

  resolveValues[ i ].promise()

  。done( updateFunc( i, resolveContexts, resolveValues ) )

  //如果有一个成员延时(Deferred)对象拒绝时,则整个主延时(Deferred)对象直接拒绝

  。fail( deferred.reject )

  。progress( updateFunc( i, progressContexts, progressValues ) );

  //非延时(Deferred)对象的直接认为已解决,需要等待解决的延时(Deferred)对象数量减一

  } else {

  --remaining;

  }

  }

  }

  //如果没有传递参数或唯一一个参数且不是一个延时对象,直接解决主延时对象即可

  if ( !remaining ) {

  deferred.resolveWith( resolveContexts, resolveValues );

  }

  return deferred.promise();

  }

感谢各位的阅读,以上就是"怎么向jquery函数传递多个参数"的内容了,经过本文的学习后,相信大家对怎么向jquery函数传递多个参数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

参数 对象 成员 函数 个数 多个 分支 时候 就是 学习 监听 内容 数量 监听器 进度 处理 三个 也就是 代码 只有 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司 互联网科技图片 中关村互联网 科技集团 善班互联网科技 杭州互联网科技公司 互联网科技论文 天津摩尔互联网科技 滨湖区互联网智能科技产品供应 哈尔滨秒房互联网科技有限公司 互联网科技实习生岗位职责 互联网科技创新服务 电子科技大学互联网创业大赛 四川慕妮娅互联网科技有限公司 济南有互联网科技公司吗 产业互联网科技服务公司 风投北京互联网科技 中国互联网公司的科技投入 数字科技和互联网金融哪个好 宁波允成互联网科技有限公司 武汉亿视互联网科技有限公司 伴你行互联网科技有限公司 互联网 科技馆 深圳国际航运科技和互联网 语蝶互联网科技有限公司 上海科技产业互联网平台 2021世界互联网领先科技成果发布 容联科技互联网电商 陕西九四连强互联网科技有限公司 北京天晋互联网科技有限公司 杭州融税互联网科技有限公司
0