当前位置: 首页 > news >正文

常平镇网站建设平台网站建设需求

常平镇网站建设,平台网站建设需求,wordpress收费模板,网上推广赚钱方法目录 监听粘贴事件并获取粘贴板中的截图 TSX中给组件添加监听粘贴事件从粘贴板获取截图文件React监听事件 事件监听绑定的事件函数相关扩展 监听粘贴事件并获取粘贴板中的截图 TSX中给组件添加监听粘贴事件 ? 1 2 3 4 5 6 7 8 9 10 11 const pasteImageRef useRefHTML…目录 监听粘贴事件并获取粘贴板中的截图 TSX中给组件添加监听粘贴事件从粘贴板获取截图文件React监听事件 事件监听绑定的事件函数相关扩展 监听粘贴事件并获取粘贴板中的截图 TSX中给组件添加监听粘贴事件 ? 1 2 3 4 5 6 7 8 9 10 11 const pasteImageRef useRefHTMLDivElement(null); useEffect((){ ?? ?//给组件添加监听粘贴事件 ?? ?pasteImageRef.current?.addEventListener(paste, pasteHandler);?? ? },[]); div ? tabIndex{-1} // 设置tabIndex才可以聚焦 ? ref{pasteImageRef} ? spanCtrlV 粘贴截图/span /div 从粘贴板获取截图文件 ? 1 2 3 4 5 6 7 8 9 10 11 12 const pasteHandler (e: ClipboardEvent) { ? const { clipboardData } e; ? const { items } clipboardData; ? const { length } items; ? let blob null; ? for (let i 0; i length; i) { ? ? const item items[i]; ? ? if (item.type.startsWith(image)) { ? ? ? blob item.getAsFile(); // blob中就是截图的文件获取后可以上传到服务器 ? ? } ? } }; React监听事件 事件监听 添加事件监听 ? 1 window.addEventListener(scroll, this.handleListen) 移除事件监听 ? 1 window.removeEventListener(scroll, this.handleListen) 绑定的事件函数相关 绑定是事件函数必须是同一个如果不会同一个会导致解绑失败。 一般会用到的事件函数类型有三种命名函数、箭头函数、匿名函数 这里重点是添加处理的函数addEventListener()和removeEventListener()添加的处理函数必须是同一个函数什么叫同一个函数呢就是说这两个函数时相等的指向同一个地址。 1. 匿名函数 匿名函数在事件绑定中的添加与移除 ? 1 2 3 4 5 6 window.addEventListener(scroll, function(e){ ? ? console.log(e) }); window.removeEventListener(scroll, function(e){ ? ? console.log(e) }); 从上面的实例写法来说很明显添加和移除事件时因为使用的是匿名函数所以会返回两个不同的地址这两个事件不同所以无法移除事件 2. 命名函数 命名函数在事件绑定中的添加与移除 ? 1 2 3 4 5 6 7 handleScroll(){ // 一些代码 } window.addEventListener(scroll,? ?? ?this.handleScroll.bind(this)); window.removeEventListener(scroll,? ?? ?this.handleScroll.bind(this)); 以上是常用的使用命名函数的写法但其实这样写还是不对的每次加上bind之后返回的函数并不是指向同一个函数 ? 1 2 3 4 5 6 7 8 9 10 11 12 const test { ? ? name:test, ? ? getName:function(){ ? ? ? ? console.log(this.name) ? ? } } let func1 test.getName.bind(test); let func2 test.getName.bind(test); let func3 test.getName; let func4 test.getName; console.log(func1func2) console.log(func3func4) 如果还想要用命名函数那么就要换种写法解决方法是先在constructor中提前声明好 ? 1 2 3 4 5 6 7 8 9 constructor(){ ? ? super(); ? ? this.handleScroll this.handleScroll.bind(this) } handleScroll(){ // 一些代码 } window.addEventListener(scroll, this.handleScroll); window.removeEventListener(scroll, this.handleScroll); 3. 箭头函数 可以直接使用箭头函数来避免返回的不是同一个函数这种情况 箭头函数在事件绑定中的添加与移除 ? 1 2 3 4 5 handleScroll () { // 一些代码 } window.addEventListener(scroll, this.handleScroll); window.removeEventListener(scroll, this.handleScroll); 扩展 ? 1 2 target.addEventListener(type, listener, options); target.addEventListener(type, listener, useCapture); target 可以有两种window和自定义对象 ? 1 2 3 1.window.addEventListener(scroll, this.handleScroll); 2.const obj document.getElementsByClassName(classname)[0]; obj.addEventListener(scroll, this.handleScroll); type 表示监听事件类型的字符串 一般常用的是鼠标事件(‘click’, ‘dblclick’)和键盘事件(‘keydown’, ‘keypress’)等 listener 当所监听的事件类型触发时会接收到一个事件通知实现了 Event 接口的对象对象。listener 必须是一个实现了 EventListener 接口的对象或者是一个函数。 options(可选) 一个指定有关 listener 属性的可选参数对象。可用的选项如下 capture: Boolean表示 listener 会在该类型的事件捕获阶段传播到该 EventTarget 时触发。once: Boolean表示 listener 在添加之后最多只调用一次。如果是 true listener 会在其被调用之后自动移除。passive: Boolean设置为true时表示 listener 永远不会调用preventDefault()。如果 listener 仍然调用了这个函数客户端将会忽略它并抛出一个控制台警告。 ? 1 2 3 4 5 addEventListener(type, listener, { ? ? capture: false, ? ? once: false, ? ? passive: false }) useCapture(可选) Boolean在DOM树中注册了listener的元素 是否要先于它下面的EventTarget调用该listener。 当useCapture(设为true) 时沿着DOM树向上冒泡的事件不会触发listener。当一个元素嵌套了另一个元素并且两个元素都对同一事件注册了一个处理函数时所发生的事件冒泡和事件捕获是两种不同的事件传播方式。 ? 1 addEventListener(type, listener, false)
http://www.dnsts.com.cn/news/134685.html

相关文章:

  • 外贸网站建站i射阳网页定制
  • 找一个网站做优化分析怎么把网站做的好看
  • 如何编辑网站模板网站开发成本计算
  • 桐乡微网站建设公司天津高端网站
  • 哪个网站可以学做蛋糕展示网站建设价格
  • al万词推广网站引流网站建设 中国联盟网
  • 优惠券网站建设制作刚做的公司网站搜不到
  • 太原云建站模板如何进行网站建设分析
  • 网站开发协议wordpress内部服务器
  • 建设网站难吗影楼微网站建设
  • 如何做移动支付网站phpcms手机网站
  • 威海网站建设兼职网站自己做还是用程序
  • 特效视频素材网站asp.net做电商网站页面
  • 做网站的主要内容重庆九龙快报
  • 做网站申请域名空间微信公众号做微网站吗
  • 自媒体时代做网站有前途吗zh cn wordpress
  • 在什么网站可以免费做爰片姿势网站
  • 电子游艺网站开发react 网站开发
  • 做棋牌网站建设哪家好西安建设工程有限公司
  • c 大型网站开发案例北京专业seo
  • 淘宝客搜索网站怎么做中国医院建设协会网站首页
  • 广州新际网站建设公司怎么样做外贸网站的效果怎么样
  • 智能家装宁波核心关键词seo收费
  • 无锡高端网站设计开发湛江在线制作网站
  • 网站备案帐号找回河北建网站
  • 沧浪企业建设网站价格全国建设项目验收信息网站
  • wordpress网站地图百度插件营销型网站建设的一般过程包括哪些环节?
  • 哪家做网站公司最好建行官方网站
  • 潍坊建设gc局网站建设部 网站
  • 文山专业网站建设联系电话福彩hao123网址导航