91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

怎么向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

池州市| 潮州市| 香港| 道孚县| 米脂县| 哈密市| 通州市| 乌兰县| 武胜县| 定南县| 承德县| 雷波县| 喀喇沁旗| 边坝县| 正蓝旗| 蓬安县| 寻乌县| 唐河县| 丹凤县| 温泉县| 鄂托克前旗| 永嘉县| 繁昌县| 远安县| 当阳市| 广水市| 河南省| 大连市| 玉屏| 淳化县| 道孚县| 桐城市| 徐汇区| 时尚| 西充县| 嵊州市| 嵩明县| 芦溪县| 昭苏县| 江陵县| 西乡县|