2013-03-12 125 views
0

當它應該返回true或false時,isUpdatable方法返回undefined。 這是一個範圍問題。當我在isUpdatable方法上進行登錄時,我發現它輸出true和false,但是keyup函數返回undefined。不返回布爾值的函數

$(function() { 
var updatableEl = ['home', 'block', 'cat']; 

inputFields.keyup(function(){ 
     var $input = $(this); 
     console.log("isUpdatable= ", isUpdatable($input)); 
    }); 

    function isUpdatable(el){ 
     $.each(updatableEl, function(intIndex, objValue){ 
      //console.log(" objValue = ", el.hasClass(objValue)); 
      return el.hasClass(objValue); 
     }); 
    } 

}); 

回答

0

$.each返回原始的jQuery對象(用於鏈接)。
它忽略其回調的返回值。

無論如何,你的代碼沒有意義。
您正在計算三種不同的布爾值;哪三個你想要返回?

0

找出可能有類似問題的人。

function isUpdatable(el){    
    for(var i=0; i< updatableEl.length; i++){ 
       if(el.hasClass(updatableEl[i])){ 
        return true; 
       } 
      } 
    }