zoukankan      html  css  js  c++  java
  • 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 })

    哪个方便哪个快用哪个!

  • 相关阅读:
    安装和配置SQL
    自定义中间件封装为模块
    留言板
    Spring Factories机制
    JVM参数配置
    全链路监控的方案概述与比较
    Lombok注解-@SneakyThrows
    @FeignClient注解 中属性 contextId使用
    @validate或@valid注解进行数据校验的解决方案
    maven的settings.xml标签详解
  • 原文地址:https://www.cnblogs.com/hasubasora/p/6677096.html
Copyright © 2011-2022 走看看