JS實現(xiàn)雙擊內容變?yōu)榭删庉嫚顟B(tài)
在一些網(wǎng)站上我們經(jīng)??吹浇换バ院軓姷墓δ?。一些用戶資料可以直接雙擊出現(xiàn)文本框,并在此輸入新的資料即可修改,無需再按確定按鈕等。。
我在網(wǎng)上查了很多資料,但都有一個小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實現(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;
//為新增元素添加光標離開事件
newobj.onblur = function() {
element.innerHTML = this.value == oldhtml ? oldhtml : this.value;
//當觸發(fā)時判斷新增元素值是否為空,為空則不修改,并返回原有值
}
//設置該標簽的子節(jié)點為空
element.innerHTML = '';
//添加該標簽的子節(jié)點,input對象
element.appendChild(newobj);
//設置選擇文本的內容或設置光標位置(兩個參數(shù):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)">三人行,必有我?guī)熝桑?lt;/dd>
</dl>
</body>
</html>
雙擊事件:ondblclick
以上所述是小編給大家介紹的JS實現(xiàn)雙擊內容變?yōu)榭删庉嫚顟B(tài),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
詳解如何在JavaScript中無縫地集成和使用Python代碼
這篇文章主要目標是幫助諸位理解如何在JavaScript中無縫地集成和使用Python代碼,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2023-06-06
JS優(yōu)雅的使用function實現(xiàn)一個class
這篇文章主要為大家介紹了JS優(yōu)雅的使用function實現(xiàn)一個class示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12

