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

大连企业网站排名微信推广加人

大连企业网站排名,微信推广加人,wordpress怎样设置导航栏,外国建筑网站问题描述 当我们使用拖拽库的时候,往往会遇到拖拽的一个元素他的子孙元素有输入框类型的dom节点,当拖拽的事件绑定在该元素身上时候,发现子孙的输入框不能进行文本选中了,会按住鼠标去选中文本的时候会触发拖拽 实际的效果&…

问题描述

当我们使用拖拽库的时候,往往会遇到拖拽的一个元素他的子孙元素有输入框类型的dom节点,当拖拽的事件绑定在该元素身上时候,发现子孙的输入框不能进行文本选中了,会按住鼠标去选中文本的时候会触发拖拽

实际的效果,鼠标无法选中文本输入框中的值
在这里插入图片描述

解决1:拖拽事件绑定到子孙元素

不再将绑定事件绑到整个dom,使用拖拽句柄,在拖拽库中一般都有句柄的选项,可以把拖拽的事件绑定子孙的某个节点上,一般拖拽可以绑定 className='handle' 的节点去
每个库都有自己的写法,搜索一下即可
下面以react-draggable库为例子


import Draggable from 'react-draggable';function Component() {return (<Draggable handle=".handle"><div><div className="handle"> Drag </div><div> Content ...</div></div></Draggable>);
}

解决2:保持拖拽绑定,处理事件冲突

原理是在拖拽的事件中,判断当前触发拖拽事件的节点是否是 input框,如果是就阻止拖拽事件,自然就可以就行选择文本的操作了,
下面以reac-dnd库为例:
useDrag方法中canDrag方法中可以进行判断,返回一个false就可以阻止拖动,核心的判断是使用document.activeElement.tagName获取当前的激活事件的Dom节点的相关信息进行判断,相关的知识可以百度一下

//下面只展示核心部分
import { DndProvider, useDrag, useDrop } from 'react-dnd';const DragDom= () => {const [{ isDragging }, drag] = useDrag(() => ({type: 'aaa',canDrag: (m) => {if(document.activeElement.tagName === 'INPUT') return falsereturn true},collect: (monitor) => ({isDragging: monitor.isDragging(),}),}));return (<div ref={drag}> Drag </div>);
};

最后大功告成
在这里插入图片描述

2024.12.23 更新

if(document.activeElement.tagName === 'INPUT') return false
这个判断改造了 改为下面的数组形式,需要什么类型的元素不被拖动就往数组里面加

 	if(['INPUT', 'TEXTAREA'].some(i => i===document.activeElement.tagName)) return false

引申思考:
我们可以把不需要拖拽的元素写入某个特定的类名, 这不管元素如何布局都可以控制不拖动
下面是用于判断拖拽的伪代码

<div><div >元素1<div><div class='不允许拖拽类名'>不可以动元素2<div><div >元素3<div>
</div>useDrag(() => ({canDrag: () => {if(document.activeElement的类名 === '不允许拖拽类名') return falsereturn true}
}))
http://www.hkea.cn/news/12406/

相关文章:

  • 莆田高端模板建站如何开发一个软件平台
  • 北京网站制作网站优化国外网站怎么推广
  • 宁波网站建设排名seo研究学院
  • 网站制作的流程有哪些windows优化大师怎么彻底删除
  • 网站开发论文内容营销网络推广
  • 建站主机微营销官网
  • 小型网站设计google海外推广
  • 没有照片怎么做网站网络营销十大成功案例
  • 网站维护费一般多少钱长沙百度快速排名优化
  • 如何制作微信公众号里的小程序搜索引擎简称seo
  • 通州网站建设是什么推广什么app佣金高
  • 做网站的前景网络项目平台
  • 揭阳企业网站建设开发制作链接的app的软件
  • 俄文网站设计方象科技专注于什么领域
  • windows和linux 做网站企业类网站有哪些例子
  • 手机单页网站制作成都网站seo费用
  • 长春seo排名外包优化大师电脑版官方免费下载
  • 东莞微客巴巴做网站哪个平台推广效果最好
  • Java电商网站开发百度云网络服务中心
  • 可以做我女朋友吗网站想学销售去哪培训
  • 尊园地产做的网站东莞搜索优化十年乐云seo
  • 网页制作素材下载免费网站优化排名推荐
  • 公司网站建设付款分录网络营销的概念及特征
  • 网站开发人员没有按照设计开发免费b2b网站有哪些
  • wordpress添加主题设置大连seo顾问
  • 企业网站 微博模块郑州优化网站公司
  • 北京最富裕的三个区关键词优化一年的收费标准
  • 旅游网站建设方案的总结网站优化外包
  • 响应式网站自助建设广州排名推广
  • 做网站的尺寸1920谷歌官网