zoukankan      html  css  js  c++  java
  • JS实现双击内容变为可编辑状态

    在一些网站上我们经常看到交互性很强的功能。一些用户资料可以直接双击出现文本框,并在此输入新的资料即可修改,无需再按确定按钮等。。 
    我在网上查了很多资料,但都有一个小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>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    双击事件:ondblclick
    

      

  • 相关阅读:
    页面状态加载.... JS
    创建windows服务&监控SQL数据运行状态(原)
    为图片添加锚点
    当jquery遇上了json 哇哈哈
    关于SVN源代码管理
    最新最全的ASP.NET学习资源大全
    .NET开发人员必知的八个网站
    关于回车执行(回车触发事件)
    DIV+CSS布局
    优化Linux下的内核TCP参数来提高服务器负载能力
  • 原文地址:https://www.cnblogs.com/c-x-a/p/6531217.html
Copyright © 2011-2022 走看看