JS事件委托与可编辑元素

 

最近又在搞一些表格的东西,还要每个格子里面可以编辑的。

可编辑方法

第一种是H5的方法 (可以直接把元素变成可编辑)

 1 contenteditable=true 

 

第二种方法替换(把内容替换成input然后替换回去)

JQ:

 1 $(this).replaceWith('text'); 

 

第三种方法只读(把input的readonly去掉就可以编辑了)

 HTML:

<input type="text" readonly=readonly>

JQ:

1 $(input).removeAttr('readonly');

 

复习JS属性操作

1  obj.getAttribute('contenteditable');
2  obj.setAttribute('contenteditable', 'true');
3  obj.removeAttribute('contenteditable');

JQ

1    $(this).attr('contenteditable', 'true')
2    $(this).removeAttr('contenteditable', 'true')

 

委托事件

有时会操作大量一样的代码,可以用委托事件,小量代码用委托事件也会有性能上的优化

JS的委托事件(看了半天原来是这么简单)

 1 document.onclick = function(event) {
 2     event = event || window.event;
 3     var target = event.target || event.srcElement;
 4     // console.log(target.nodeName)
 5     if (target.nodeName == target.nodeName) {
 6         for (var o = 0; o < len; o++) {
 7             tag[o].removeAttribute('contenteditable');
 8         }
 9     }
10 };

JQ就更加简单了

1 $('table').on('click', 'tbody td', function(e) {
2     $(this).attr('contenteditable', 'true');
3     $(this).focus();
4     e.stopPropagation();
5 })

 

哪个方便哪个快用哪个!

转载于:https://www.cnblogs.com/hasubasora/p/6677096.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值