JS实现双击内容变为可编辑状态


Posted in Javascript onMarch 03, 2017

在一些网站上我们经常看到交互性很强的功能。一些用户资料可以直接双击出现文本框,并在此输入新的资料即可修改,无需再按确定按钮等。。

我在网上查了很多资料,但都有一个小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实现双击内容变为可编辑状态,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
return false,对阻止事件默认动作的一些测试代码
Nov 17 Javascript
js+xml生成级联下拉框代码
Jul 24 Javascript
JavaScript中的this关键字使用方法总结
Mar 13 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
May 17 Javascript
浅谈js数组和splice的用法
Dec 04 Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
Jan 04 Javascript
JS实现的添加弹出层并完成锁屏操作示例
Apr 07 Javascript
node+koa实现数据mock接口的方法
Sep 20 Javascript
JS为什么说async/await是generator的语法糖详解
Jul 11 Javascript
node.js基于dgram数据报模块创建UDP服务器和客户端操作示例
Feb 12 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
Mar 25 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
Aug 26 Javascript
jquery表单验证实例仿Toast提示效果
Mar 03 #Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
Mar 03 #Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
Mar 03 #Javascript
angularjs实现下拉列表的选中事件示例
Mar 03 #Javascript
JavaScript数组迭代方法
Mar 03 #Javascript
vue.js的提示组件
Mar 02 #Javascript
js实现功能比较全面的全选和多选
Mar 02 #Javascript
You might like
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
2011/11/07 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
PHP的cookie与session原理及用法详解
2019/09/27 PHP
(JS实现)MapBar中坐标的加密和解密的脚本
2007/05/16 Javascript
Jquery上传插件 uploadify v3.1使用说明
2012/06/18 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
浅谈react+es6+webpack的基础配置
2017/08/09 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
收集前端面试题之url、href、src
2018/03/22 Javascript
jQuery使用bind动态绑定事件无效的处理方法
2018/12/11 jQuery
JavaScript时间日期操作实例小结【5个示例】
2018/12/22 Javascript
JSON字符串操作移除空串更改key/value的介绍
2019/01/05 Javascript
Node.js实现简单的爬取的示例代码
2019/06/25 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
python学习手册中的python多态示例代码
2014/01/21 Python
Python下使用Psyco模块优化运行速度
2015/04/05 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
2018/06/28 Python
Python设计模式之迭代器模式原理与用法实例分析
2019/01/10 Python
详解js文件通过python访问数据库方法
2019/03/03 Python
Python字符串内置函数功能与用法总结
2019/04/16 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
Pytorch实现基于CharRNN的文本分类与生成示例
2020/01/08 Python
Pycharm小白级简单使用教程
2020/01/08 Python
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
2016/01/20 HTML / CSS
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
历史专业个人求职信分享
2013/12/20 职场文书
怎样客观的做好自我评价
2013/12/28 职场文书
小区门卫岗位职责
2013/12/31 职场文书
事业单位接收函
2014/01/10 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
工人先锋号事迹材料
2014/12/24 职场文书
如何让2019年上半年的工作总结更出色!
2019/07/01 职场文书
SQLServer中JSON文档型数据的查询问题解决
2021/06/27 SQL Server