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

凡客优品家居官方网站wordpress定时器

凡客优品家居官方网站,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.yayakq.cn/news/640051/

相关文章:

  • 网站规划与建设规划书世代网络网站建设设计
  • 接视频做的网网站重庆住房建设工程信息网官网
  • 做视频网站的上市公司网站设计制作代码
  • 工信部网站备案官网麻豆人文化活动策划有限公司
  • 还有哪些行业可以做垂直网站广东省城乡建设厅投诉网站首页
  • 怎么样在服务器上建设网站网站的形式有哪些
  • 网站开发设计选题背景注册网站的好处
  • 1920的网站做字体大小wordpress怎样切换语言
  • 常州做沙滩旗的公司网站wordpress仿百度搜索主题
  • 网站建设推广济南新风向网站建设
  • 怎样给建设的网站提意见如何自建网站
  • wordpress 网站提速域名注册服务网站查询
  • 成都本地网站万网域名续费
  • 可以做代销的网站wordpress插件的开发
  • 做网站有哪些要求龙湖什么网站做宣传
  • 自学php制作网站有哪些软件山东网站建设服务
  • 河北建设网站公司成都家具公司
  • 网站关键词排名东莞品牌设计公司
  • 做网站制作大概多少钱网站开发的论文参考文献
  • 专业生产车间设计图纸网站wordpress 页面指向
  • aspnet网站开发太原市住房和城乡建设局的网站
  • 什么样的网站是一个成功的网站制作网站怎样找公司来帮做
  • 模板建站公司目录更新 wordpress
  • 有域名后怎样做网站动态电子商务网站建设报告
  • 厦门网站建设公司推荐网站制作模板百度网盘
  • 大良网站建设价位国外网页设计欣赏网站
  • 企业网站建设需了解什么自助手机网站
  • 域名申请而完成以后怎么做网站阿里云服务器怎么发布网站
  • 德州网站制作蚂蚁币是什么网站建设
  • 杭州网站优化咨询江苏做网站找谁