JS實(shí)現(xiàn)雙擊內(nèi)容變?yōu)榭删庉嫚顟B(tài)
在一些網(wǎng)站上我們經(jīng)??吹浇换バ院軓?qiáng)的功能。一些用戶資料可以直接雙擊出現(xiàn)文本框,并在此輸入新的資料即可修改,無(wú)需再按確定按鈕等。。
我在網(wǎng)上查了很多資料,但都有一個(gè)小bug,就是當(dāng)獲取焦點(diǎn)后,光標(biāo)的位置在文本框內(nèi)容是開(kāi)始處,這樣編輯時(shí)還需要用戶再重新選擇一下光標(biāo)位置,這樣的交互感覺(jué)不好;后來(lái)查到新的資料解決了此問(wèn)題,希望可以幫助到更多的人。
代碼部分:
注意:設(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');
//為新增元素添加類(lèi)型
newobj.type = 'text';
//為新增元素添加value值
newobj.value = oldhtml;
//為新增元素添加光標(biāo)離開(kāi)事件
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為開(kāi)始位置,end為結(jié)束位置;如果開(kāi)始位置和結(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ì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
JavaScript定時(shí)器常見(jiàn)用法實(shí)例分析
這篇文章主要介紹了JavaScript定時(shí)器常見(jiàn)用法,結(jié)合實(shí)例形式分析了JavaScript定時(shí)器常見(jiàn)功能、應(yīng)用及相關(guān)操作技巧,需要的朋友可以參考下2019-11-11
JavaScript檢測(cè)彈出窗口是否已經(jīng)關(guān)閉的方法
這篇文章主要介紹了JavaScript檢測(cè)彈出窗口是否已經(jīng)關(guān)閉的方法,涉及javascript中window屬性的closed屬性的使用技巧,需要的朋友可以參考下2015-03-03
基于Cesium實(shí)現(xiàn)衛(wèi)星在軌繞行動(dòng)畫(huà)
這篇文章主要為大家詳細(xì)介紹了如何利用Cesium實(shí)現(xiàn)衛(wèi)星在軌繞行動(dòng)畫(huà),文中的示例代碼講解詳細(xì),對(duì)我們了解Cesium有一定的幫助,感興趣的可以嘗試一下2022-06-06
js控制輸入框獲得和失去焦點(diǎn)時(shí)狀態(tài)顯示的方法
這篇文章主要介紹了js控制輸入框獲得和失去焦點(diǎn)時(shí)狀態(tài)顯示的方法,可實(shí)現(xiàn)判斷輸入框的焦點(diǎn)狀態(tài)設(shè)置不同樣式的功能,是非常實(shí)用的技巧,需要的朋友可以參考下2015-01-01
移動(dòng)端翻頁(yè)插件dropload.js(支持Zepto和jQuery)
這篇文章主要為大家詳細(xì)介紹了移動(dòng)端翻頁(yè)插件dropload.js,支持Zepto和jQuery,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07
js實(shí)現(xiàn)圖片放大并跟隨鼠標(biāo)移動(dòng)特效
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)圖片放大并跟隨鼠標(biāo)移動(dòng)特效,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01

