亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么向jquery函數傳遞多個參數

發布時間:2022-03-05 10:24:07 來源:億速云 閱讀:213 作者:iii 欄目:web開發

這篇文章主要講解了“怎么向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函數傳遞多個參數這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

英山县| 门源| 汉川市| 滨海县| 夏邑县| 凤冈县| 灵台县| 越西县| 长宁县| 阿勒泰市| 沁阳市| 平安县| 青浦区| 越西县| 崇左市| 张家川| 新建县| 临桂县| 南涧| 兴城市| 五常市| 重庆市| 静海县| 赤城县| 大庆市| 盖州市| 大同市| 历史| 台北市| 镇原县| 玉林市| 新化县| 屏南县| 高陵县| 邛崃市| 屯昌县| 清水河县| 白河县| 常熟市| 灵山县| 涞源县|