jQuery.each 中的 return

    項目開發中,遇到一種情況,想在jQuery.each循環中判斷一個條件,如果條件滿足則直接退出循環返回一個值,如下
  1. $.each(array, function(index, a) {
  2.     if (met condition) {
  3.         return someValue;
  4.     }
  5. });
  6. return otherValue;
    結果發現,程序總是返回 otherValue,這也就是說程序總是走完each循環,而沒有當條件滿足的時候在第3行直接返回。
    查看了一些資料才發現,原來在jQuery.each中使用 return false 相當於在for或while循環中使用break,return true則相當於使用continue,這不禁想起了js的事件冒泡。
    其實可以這樣來理解,jQuery.each相當於其中function的父事件,在function中return false則阻止jQuery.each運行,也就相當於使用break,這也就很容易理解爲什麼return true就相當於使用continue了。
    如此一來,上述程序可以寫成如下形式
  1. var ret = otherValue;
  2. $.each(array, function(index, a) {
  3.     if (met condition) {
  4.         ret = someValue;
  5.         return false; // break;
  6.     }
  7. });
  8. return ret;
    搞懂一些jQuery的運行機制後,一些問題便可以輕鬆解決了。

<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
閱讀(6) | 評論(0) | 轉發(0) |
給主人留下些什麼吧!~~
評論熱議
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章