標籤:fun blur win jquery www 事件 點擊 spn text
用計時器監視window.innerHeight高度改變來判斷。觸發鍵盤其他地方也有事件反應
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script><input type="text" id="txt" /><div id="dv"></div><script> var timer, windowInnerHeight; function eventCheck(e) { if (e) { //blur,focus事件觸發的 $(‘#dv‘).html(‘android鍵盤‘ + (e.type == ‘focus‘ ? ‘彈出‘ : ‘隱藏‘) + ‘--通過‘ + e.type + ‘事件‘); if (e.type == ‘click‘) {//如果是點擊事件啟動計時器監控是否點擊了鍵盤上的隱藏鍵盤按鈕,沒有點擊這個按鈕的事件可用,keydown中也擷取不到keyCode值 setTimeout(function () {//由於鍵盤彈出是有動畫效果的,要擷取完全彈出的視窗高度,使用了計時器 windowInnerHeight = window.innerHeight;//擷取彈出android軟鍵盤後的視窗高度 timer = setInterval(function () { eventCheck() }, 100); }, 500); } else clearInterval(timer); } else { //計時器執行的,需要判斷視窗可視高度,如果改變說明android鍵盤隱藏了 if (window.innerHeight > windowInnerHeight) { clearInterval(timer); $(‘#dv‘).html(‘android鍵盤隱藏--通過點擊鍵盤隱藏按鈕‘); } } } $(‘#txt‘).click(eventCheck).blur(eventCheck);</script>
手機端點擊鍵盤無法擷取keyCode值的部分時隱藏鍵盤並執行事件