- 下面的代碼工作用於查找最大高度
$.fn.
代碼是用來添加此方法,因爲jQuery插件。$.Map()
回報新陣列Math.Max.Apply
回報最大數量從陣列$.fn.tallest = function(outer, margins) { var fn = outer ? "height" : "outerHeight"; return Math.max.apply(Math, $.map(this, function(el){return $(el)[fn](margins);})); }; //var images=jquery(img 1.jpg, img 2.jpg, img 3.ipg, img 4.jpg); var slidesHeight = images.tallest();
在此我有以下線的麻煩理解,但理解 .MAP()是如何工作的。
$.map(this, function(el) {return $(el)[fn](margins);})
$(el)[fn](margins)
//特別是這條線如何返回圖像的高度屬性。
回答
$(el)[fn]
是調用$(el)
的方法,其名稱在事先不知道的另一種方式。
$(el)[fn](margins)
相同具有$(el).height(margins)
或$(el).outerHeight(margins)
取決於其取決於參數outer
的值fn
的值。
當outer
是非falsy,fn
將"outerHeight"
和上面的語句將相當於$(el).outerHeight(margins)
當outer
是falsy,fn
將"height"
和上面的語句將相當於$(el).height(margins)
'$(el).fn(margin)'有點誤導IMO。 – 2013-02-22 13:58:01
@FelixKling - 意識到這一點,並在答案中予以糾正。 – techfoobar 2013-02-22 13:59:16
@MattWhipple - 當然它並沒有真正意義上的翻譯。但從代碼閱讀的角度來看,這樣更容易解釋它。 – techfoobar 2013-02-22 13:59:53
*編輯加入費利克斯克林的筆記。
好吧,讓我們把它分解
$.map(this, function(el){return $(el)[fn](margins);})
$.map
是一個函數,在集合遍歷並執行傳遞函數的集合中的每個元素,並返回所有結果的陣列。
例如:$.map([1,2], function(i) {return i + 1}) [2, 3]
的
this
指的是jQuery的集合$.fn.tallest()
正在對集合。 例如:$('tr').tallest() // => this would refer to all the tr's within the dom
$(el)[fn]
在JavaScript中,則可以調用綁定到具有規則的點表示法的接收器的功能,如$(e1).height
或可以使用括號標記爲你提供的例子中的作用:$(e1)['height']
。$(e1)[fn](margins)
margins
在參數中傳遞給函數height()
。
希望這會有所幫助。
我不會調用'$(el)[fn]'「* array * notation」。這與陣列沒有任何關係,它可能會讓經驗較少的讀者感到困惑。正式名稱是「**支架**符號」。 – 2013-02-22 14:35:41
謝謝Felix,編輯 – 2013-02-22 15:18:11
- 1. 將div的高度從javascript的最大高度擴展到
- 2. Android - GridView的高度到最大高度
- 3. JavaScript模擬的CSS最大寬度,最大高度100%
- 4. CSS3過渡最大高度:0到最大高度:99999px
- 5. 查找元素的最大高度
- 6. ,最大高度
- 7. 的Javascript/jQuery的:得到高度時,最大高度設定爲0
- 8. 使用javascript設置最大高度
- 9. 使用javascript計算div最大高度
- 10. Div最大高度太高
- 11. WooSlider最大高度
- 12. CSS最大高度
- 13. Javascript找到最大值
- 14. JQuery的動畫()到最大高度
- 15. 如何找到瀏覽器窗口的「最大化」高度?
- 16. 使用最大寬度,最大高度與寬度,高度的組合
- 17. 匹配子div div最大高度與父div最大高度
- 18. CSS - 隨高度和最大高度
- 19. DIV中的最大高度
- 20. 目錄的高度:查找節點的最大深度
- 21. 在Java中從Map中找到每個類型的最高位
- 22. 限制tbody達到最大高度?
- 23. 使用高度和最大高度的動態大小列表
- 24. 增加最大/最小高度:div的?
- 25. 高度與最大/最小高度之間的差異
- 26. 找到圖的最大長度
- 27. 找到最大的變數的JavaScript
- 28. 找到最大的整數的JavaScript
- 29. Silverlight中的最大寬度和高度
- 30. 鉻錯讀最大高度和最大寬度
看起來你缺少表達式中的方括號。它應該可能是'$(el)[fn]'。 – 2013-02-22 13:47:18
您可以使用點符號或括號表示訪問對象屬性。請參閱http://es5.github.com/#x11.2.1。 – 2013-02-22 13:52:52