在一些網站上我們經常看到交互性很強的功能。一些用戶資料可以直接雙擊出現文本框,并在此輸入新的資料即可修改,無需再按確定按鈕等。。
我在網上查了很多資料,但都有一個小bug,就是當獲取焦點后,光標的位置在文本框內容是開始處,這樣編輯時還需要用戶再重新選擇一下光標位置,這樣的交互感覺不好;后來查到新的資料解決了此問題,希望可以幫助到更多的人。
代碼部分:
注意:設置選擇文本的內容或設置光標位置
<!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實現雙擊編輯可修改狀態</title><meta http-equiv="content-type" content="text/html;charset=utf-8" /><script type="text/javascript">  function ShowElement(element) {    var oldhtml = element.innerHTML;    //創建新的input元素    var newobj = document.createElement('input');    //為新增元素添加類型    newobj.type = 'text';    //為新增元素添加value值    newobj.value = oldhtml;    //為新增元素添加光標離開事件    newobj.onblur = function() {      element.innerHTML = this.value == oldhtml ? oldhtml : this.value;      //當觸發時判斷新增元素值是否為空,為空則不修改,并返回原有值     }    //設置該標簽的子節點為空    element.innerHTML = '';    //添加該標簽的子節點,input對象    element.appendChild(newobj);    //設置選擇文本的內容或設置光標位置(兩個參數:start,end;start為開始位置,end為結束位置;如果開始位置和結束位置相同則就是光標位置)    newobj.setSelectionRange(0, oldhtml.length);    //設置獲得光標    newobj.focus();  }</script></head><body>  <dl>    <dt>你的用戶名:</dt>    <dd ondblclick="ShowElement(this)">三人行</dd>    <dt>你的個性檔</dt>    <dd ondblclick="ShowElement(this)">三人行,必有我師焉!</dd>  </dl></body></html>雙擊事件:ondblclick
以上所述是小編給大家介紹的JS實現雙擊內容變為可編輯狀態,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!
新聞熱點
疑難解答