【小(xiǎo)編推薦】phonegap軟鍵盤的(de)隐藏和​∏(hé)顯示

2014-07-02   | &©©≠nbsp; 發布者:梁國(guó)芳 &n<©₩bsp; |   查看(kàn):33₹•20次

app開(kāi)發
 phonegap開(kāi)發過程中如(rú)果遇到(d ≠★ào)表單頁面,會(huì)出現(xiàn)這(zhè)樣的(de)情況,ε≤ ©點擊輸入框,會(huì)彈出軟鍵盤,輸入內(nèi)容,然後按返回鍵就∏↑γ(jiù)回去(qù)隐藏軟鍵盤,但(dàn)是(shì)同時(sh♦×÷í)頁面也(yě)會(huì)随之返回上(shàng)一(yī)個(gè)頁☆≥面。如(rú)何解決這(zhè)個(gè)bug呢‍≠→(ne)?

 

首先明(míng)确2個(gè)方法:

document.addEventListenerε∞♣(‘backbutton&rsqu←πo;,eventBackButton, fa♦→∏→lse);重置返回鍵監聽(tīng)

document.removeEventListener>&λ(‘backbutton’,even≈€tBackButton, false); 取消返回鍵監聽(tīng)

那(nà)麽解決辦法就(jiù)是(shì):在輸入的(de)時(←‌★shí)候去(qù)掉返回鍵監聽(tīng),這(zhè)樣按下(xià☆®&)返回鍵就(jiù)不(bù)會(huì)返回上(shàng)一(yī)頁ε•,然後在加上(shàng)返回鍵監聽(tīng)就(jiù)行(xín↔σ ☆g)了(le)。

 

廢話(huà)不(bù)說(shuō)接著(zhe)看(kàn):

html

 

<form  id="fo'δ≠rm_buy"> 
    ≥↑      &nb <÷sp;  <p>您的(de)姓名:<i←✘ nput type="text" name=&quo ♠Ω t;consumer_name"clas<♦σs="inputClass co✘÷nsumer_name" onFocus="add();"onBlur="document.addEv∏♣εentListener(‘backbutton&rsqΩ¶uo;,eventBackButton, false);&quo÷ t;><span class="need"&g¶≠€§t;*</span></p>

<p><input type=σ♥"submit" value="☆ €∞;訂購(gòu)" id="bmit&™'‌‌quot; class="ui-"©btn ui-btn-fullsize""bu>♠πy();return false;"></p>±÷γ♦; 
     &nb‍∑™sp;     </fo€♠rm>

 

js:

function add(){docum>>¥ent.removeEventListener(&lsquo‍​;backbutton’,ev∏♥entBackButton, false); 
    ™≠λ∏;     ¶↔λγ   document.a'βddEventListener(&lsquo££♠×;backbutton’,bb, false); '♣↓;
    &nb​α∏sp;   &nbs₩ ×p;   } ®  ₹
    &¥π nbsp;   function bb(₽ ←♠){ 
      &nb₽φ♠sp;     &nbs≤₽©p;   var oInp↓↕≤αut = document.getElementById(&quo​β ₹t;bmit"); 
     φ≈Ω;     &nb≠♦$☆sp;     <​γ oInput.focus();  
    &nβ∑bsp;      ₹$λ∞; }

這(zhè)裡(lǐ)面我用(yòng)來(lái) onfocus 和♥ (hé) onblur,即:在光(guāng)标聚焦到(dà↑♠♠o)input上(shàng)是(shì)去(qù)掉監聽(tīng)™★§這(zhè)樣返回鍵就(jiù)失去(qù)效果,而input失去(qù)焦點‍ ↔ 的(de)時(shí)候在增加上(shàng δ)監聽(tīng),這(zhè)樣就(jiù§‍↑)可(kě)以。

但(dàn)是(shì)問(wèn)題還(háiγ↑‌×)是(shì)來(lái)了(le) 即使去(qù)掉了∏'(le)監聽(tīng),按返回鍵軟鍵盤β♥隐藏了(le),但(dàn)是(shì)光(guāng)标依然還(hái)在iσ₽nput上(shàng)面,這(zhè)©'™$時(shí)再按返回鍵卻不(bù)能(néng)返回上(shàn☆ ©g)一(yī)個(gè)頁面,因為(wèi)’backbutt¥$↕on’ 已經沒有(yǒu)監聽(tīng)了(l₩​Ωe)事(shì)件(jiàn)了(le),所以我這(zhè) ↑∏裡(lǐ)就(jiù)在第一(yī)次按下(xi÷ à)返回鍵的(de)時(shí)候,把焦點移動掉其他(tā)沒有(yǒφγ​δu)加onfcuos的(de)input上(s∏₽hàng)面,這(zhè)樣就(jiù)≤ ♥β可(kě)以完美(měi)實現(xiàn)表單頁面顯示和(hé)隐ε>±€藏軟鍵盤,同時(shí)依然可(kě)以返回上(shàng)一(yī)∑≤¥頁的(de)效果。