在一些網(wǎng)站上我們經(jīng)常看到交互性很強(qiáng)的功能。一些用戶資料可以直接雙擊出現(xiàn)文本框,并在此輸入新的資料即可修改,無需再按確定按鈕等。。
我在網(wǎng)上查了很多資料,但都有一個(gè)小bug,就是當(dāng)獲取焦點(diǎn)后,光標(biāo)的位置在文本框內(nèi)容是開始處,這樣編輯時(shí)還需要用戶再重新選擇一下光標(biāo)位置,這樣的交互感覺不好;后來查到新的資料解決了此問題,希望可以幫助到更多的人。
代碼部分:
注意:設(shè)置選擇文本的內(nèi)容或設(shè)置光標(biāo)位置
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>JS實(shí)現(xiàn)雙擊編輯可修改狀態(tài)</title><meta http-equiv="content-type" content="text/html;charset=utf-8" /><script type="text/javascript"> function ShowElement(element) { var oldhtml = element.innerHTML; //創(chuàng)建新的input元素 var newobj = document.createElement('input'); //為新增元素添加類型 newobj.type = 'text'; //為新增元素添加value值 newobj.value = oldhtml; //為新增元素添加光標(biāo)離開事件 newobj.onblur = function() { element.innerHTML = this.value == oldhtml ? oldhtml : this.value; //當(dāng)觸發(fā)時(shí)判斷新增元素值是否為空,為空則不修改,并返回原有值 } //設(shè)置該標(biāo)簽的子節(jié)點(diǎn)為空 element.innerHTML = ''; //添加該標(biāo)簽的子節(jié)點(diǎn),input對(duì)象 element.appendChild(newobj); //設(shè)置選擇文本的內(nèi)容或設(shè)置光標(biāo)位置(兩個(gè)參數(shù):start,end;start為開始位置,end為結(jié)束位置;如果開始位置和結(jié)束位置相同則就是光標(biāo)位置) newobj.setSelectionRange(0, oldhtml.length); //設(shè)置獲得光標(biāo) newobj.focus(); }</script></head><body> <dl> <dt>你的用戶名:</dt> <dd ondblclick="ShowElement(this)">三人行</dd> <dt>你的個(gè)性檔</dt> <dd ondblclick="ShowElement(this)">三人行,必有我?guī)熝桑?lt;/dd> </dl></body></html>雙擊事件:ondblclick
以上所述是小編給大家介紹的JS實(shí)現(xiàn)雙擊內(nèi)容變?yōu)榭删庉嫚顟B(tài),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注