jquery 实现可编辑div
html大致例如以下:
<ol id="ol_group" class="list-group list_of_items">
<li class="list-group-item completed_item">
<div class="text_holder">
how are you?
<div class="btn-group pull-right">
<button class="delete btn btn-warning">Delete</button>
<button class="edit btn btn-success">Edit</button>
</div>
</div>
<div class="checkbox">
<label>
<input type="checkbox" class="pull-right">
</label>
</div>
</li>
</ol>
(这仅仅是一部分,但演示效果够了)
在js文件给 Eidtbutton加入事件并实现.test-holder的div的可编辑化:
body.on('click', '.text_holder .btn-group .edit', function(){
    var divedit = $(this).parent().parent();
    if (!divedit){
        return;
    }
    if (divedit.children("input").length > 0) {
        return;
    }
    var mtext = divedit.text().substring(0, divedit.text().length-10);
    var inputIns = $("<input type='text'/>");  //创建input 输入框
    var oldtext = divedit.html();        //保存原有的值
    inputIns.width(divedit.width()/3*2); //设置INPUT与DIV宽度一致
    inputIns.val(mtext);
    divedit.html(""); //删除原来单元格DIV内容
    inputIns.appendTo(divedit).focus().select(); //将须要插入的输入框代码插入DOM节点中
    inputIns.click(function () {
        return false;
    });
    //处理回车和ESC事件
    inputIns.keyup(function (event) {
        var keycode = event.which;
        if (keycode == 13) {
            var newText = oldtext.replace(mtext, $(this).val());
            divedit.html(newText);         //设置新值
        }
        if (keycode == 27) {
            divedit.html(oldtext);         //返回旧值
        }
    }).blur( function (event) {
            if($(this).val() != oldtext){
                var newText = oldtext.replace(mtext, $(this).val());
                divedit.html(newText);         //设置新值
            }else{
                divedit.html(oldtext);
            }
        }
    );
});
效果图:
參考资料:
http://blog.csdn.net/billhepeng/article/details/7409125
jquery 实现可编辑div的更多相关文章
- 扩展jquery easyui datagrid编辑单元格
		扩展jquery easyui datagrid编辑单元格 1.随便聊聊 这段时间由于工作上的业务需求,对jquery easyui比较感兴趣,根据比较浅薄的js知识,对jquery easyui中的 ... 
- 2017-02-20 可编辑div中如何在光标位置添加内容
		之前做了一个可编辑div需要在里面插入内容,搜了好多代码,就这个能实现我的功能,记录一下,以备以后用 <!DOCTYPE HTML> <html> <head> & ... 
- 用jquery写循环播放div -2
		前面所说的class html元素标签的写法也要有层次性, 这个层次性其实也就是常说的 css类写法要有一个"命名空间, 名字空间" "namespace" 在 ... 
- 用jquery写循环播放div的相关笔记 珍贵的总结 -1
		用jquery写循环播放div line-height应用的元素的 层次? line-heig字ht, 叫行高, 仅仅是指 文/文本, 而不管图片. line-height是容器中 文本行 与 文本行 ... 
- 可编辑DIV与移动端软键盘兼容性问题汇总
		此文复现的所有兼容性问题均为以下情况: 1. 腾讯X5内核 2. 全屏webview 问题如下: 1. IOS12 中软键盘弹出导致页面顶部截断,并且无法恢复. 解决方法:添加交互事件,调用本地方法, ... 
- 基于jquery的可拖动div
		昨天给大家介绍了一款基于jquery ui漂亮的可拖动div实例,今天要给大家分享一款基于jquery的可拖动div.这款可拖动div只要引用jquery就可以,无需引用jquery ui.还实时记录 ... 
- 可编辑div中包含子元素时获取光标位置不准确的问题
		前言: 高亮显示输入框中的关键字符,这就必须得用到可编辑div(或其他标签)元素了,这时我们需要获取光标的位置,以便插入字符. 正文: 正常情况下获取光标位置,代码如下: function getPo ... 
- 实战Jquery(二)--能够编辑的表格
		今天实现的是一个表格的样例,通过获取表格的奇数行,设置背景色属性,使得奇偶行背景色不同.这个表格能够在单击时编辑,回车即更改为新输入的内容;ESC还原最初的文本.表格的实现思路非常清晰,仅仅是在实现的 ... 
- jQuery改变CSS使DIV显示
		HTML: <div id="mazey" style="display:none;">www.mazey.net</div> jQue ... 
随机推荐
- Python 快排[pythonnic]
			def QS(array): less = [] more = [] if len(array) <= 1: return array head = array.pop() for x in a ... 
- Android中 string.xml资源 如何添加参数?
			在android 开发,我们通常会用string.xml资源去设置textview等控件的字符串.而值一般是与程序的运行结果无关的. 但有时需要根据运行的结果来显示到控件中,这时字符串资源就不能写死了 ... 
- [权威指南]学习笔记——第1、2章 MongoDB介绍和基础知识
			安装目录:C:\Program Files\MongoDB\Server\3.2 Bin:..\..\Program Files\MongoDB\Server\3.2\bin 启动命令:mongod ... 
- HDU_3591_(多重背包+完全背包)
			The trouble of Xiaoqian Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/ ... 
- MFC_2.3 定时器、滑块、进度条控件
			定时器.滑块.进度条控件 1.拖控件 2.绑定变量.默认,然后取名字 3.初始化设置定时器 // 设置滑块和进度条的范围 m_TrackBar.SetRange(0, 1000); m_StaticP ... 
- 梦想CAD控件安卓控件事件
			MxDrawActivity.commandEvent 命令调用事件. 参数 说明 int iCommand 命令ID,这个ID用户自已来取的,只要多个命令ID不重复就可以 代码实现如下: publi ... 
- 学习笔记7——使用Scanner获取键盘输入
			使用Scanner类可以很方面地获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器,它可以从文件.输入流.字符串中解析出基本类型值和字符串值.Scanner类提供了多个构造器,不同的构 ... 
- 关闭的连接: next
			1.最近做了一个项目,扫描读取了第三方数据库的数据,结果本来在公司测试没有问题的程序在客户那边一直报如下错误: java.sql.SQLException: 关闭的连接: next 代码如下: //第 ... 
- 洛谷——P2094 运输
			P2094 运输 题目描述 现在已知N件商品,和搬运它们其中每一件的费用.现在搬家公司老板Mr.sb决定让我们每次任意选取2件商品.然后这2件商品只算一件商品的费用.但是这个商品的搬运费用是将选出的2 ... 
- UVA - 10603 Fill(BFS求最小值问题)
			题目: 给出三个杯子(没有刻度线)的容量,起初之后第三个杯子是满的,其他的两个杯子是空的,容量分别是a.b.c.问最少需要倒多少升水才能让某一个杯子中的水有d升?如果不能恰好做到d升,就让某一个杯子里 ... 
