JS實現雙擊編輯可修改狀態


js實現雙擊編輯,點擊他處時自動保存。(如下代碼可直接運行,無需jquery系列jar)

 

<!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;
            //當觸發時設置父節點的雙擊事件為ShowElement、也可在這里進行保存動作
            element.setAttribute("ondblclick", "ShowElement(this);");
        }
        //設置該標簽的子節點為空
        element.innerHTML = '';
        //添加該標簽的子節點,input對象
        element.appendChild(newobj);
        //設置選擇文本的內容或設置光標位置(兩個參數:start,end;start為開始位置,end為結束位置;如果開始位置和結束位置相同則就是光標位置)
        newobj.setSelectionRange(0, oldhtml.length);
        //設置獲得光標
        newobj.focus();

        //設置父節點的雙擊事件為空
        newobj.parentNode.setAttribute("ondblclick", "");

    }
</script>
</head>
<body>
    <dl>
        <dt>你的用戶名:</dt>
        <dd ondblclick="ShowElement(this)">三人行</dd>
        <dt>你的個性檔</dt>
        <dd ondblclick="ShowElement(this)">三人行,必有我師焉!</dd>
    </dl>
</body>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM