selectionchange采坑记

       应公司需求,要在游标发生变化时,监视游标的x,y坐标。于是,我便找到了selectionchange事件(当游标发生变化时就会触发selectionchange事件),看着很美,添加事件监听器就会触发callback。
       使用时,我想将它加在指定的DOM上,结果加了之后无论怎么操作都无法触发callback,重新查阅MDN,结果它仅支持在document,input,textarea上添加监听,后两者除了firefox外都没有实现。好吧,最终我只能加在document上了。
       但是,使用一段时间后发现敲击回车和删除整行的时候,不会触发callback事件,查看公司编辑器DOM发现,由于插入整行和删除整行都是以创建和删除DOM的方式运行,一阵苦思冥想之后总算明白原来selectionchange是通过监视游标在当前DOM的位置变化来触发callback的,由于添加和删除DOM元素,本身在当前DOM的位置并未发生变化,所以不会触发callback。
       总结,selectionchange虽然很不错,但还是要依据具体场景和情况使用的。

评论

此博客中的热门博文

公司自动部署系统建设

tfjs源码笔记

前端首屏渲染优化