2016-11-15 68 views
1
var $inputPswd1 = $('#checkInput01'), 
    $inputPswd2 = $('#checkInput02'), 
    $inputPswds = $inputPswd1.add($inputPswd2); 

var bindOn = function() { 
    return typeof $(document)['on'] ? 'on' : 'bind'; 
}(); 

$inputPswds[bindOn]('keyup._passchk', function(e){ 
}); 

這段代碼寫成輸入的一部分validation.Can誰能告訴一下這些線路做:

typeof $(document)['on'] 

$inputPswds[bindOn]('keyup._passchk', function(e) {}); 

checkInput01checkInput02是兩個輸入端的ID。

回答

1
typeof $(document)['on'] 

這是用來檢查on方法是否可用的DOM對象。在jQuery 1.7之前,它將不可用。

$inputPswds[bindOn]('keyup._passchk', function(e) {}); 

這要求任onbind方法,這取決於上述的語句的結果,並分配keyup事件處理程序在$inputPswds jQuery對象的元素。

需要注意的是,如果你使用jQuery的任何版本,因爲1.7,那麼檢查是非常多餘的,可以去掉,只是簡單地調用的jQuery on()

+0

豈不'$ .fn.on? 'on':'bind'會更快嗎? – haim770

+0

最有可能的是,然而代碼的整個點很大程度上是無用的。 –

+0

謝謝麥克羅珊,我真的很感謝你的幫助。 – Aeverlite

0

舊版本沒有on方法。代碼片段使用typeof來檢查on方法的存在。如果jQuery對象沒有.on方法,它使用.bind方法來附加事件處理程序。

另請注意,代碼有一個錯誤! typeof返回一個字符串,非空字符串是JavaScript中的真值。該功能始終返回.on。函數體應該是:

return typeof $(document)['on'] !== 'undefined' ? 'on' : 'bind'; 

另一種選擇是:

return jQuery.fn.on ? 'on' : 'bind'; 
相關問題