首页 > 代码库 > JS事件委托与可编辑元素
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 })
哪个方便哪个快用哪个!
JS事件委托与可编辑元素
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。