作为一个乐于助人的程序员,我总是会帮助身边的同事解决一些力所能及的问题(当然都是和编程相关的问题)。
更巧的是和我工位相邻的就是一位做设计的mm,她们天天要和专题页面的设计打交道,偶尔会碰到一些自己解决不了的js相关的问题。
今天,她就为了一个鼠标悬浮显示的问题找到了我。大致的情况是这样的
<div> <div id=‘a‘…… <div id=‘b‘…… </div>
她想做一个鼠标悬浮切换的功能,a是默认显示的,当鼠标悬浮在a上时,显示b。是不是很简单?
人有一种惯性思维,就是一个人把头开好了,下一个人就会跟着往下走。
我就被她给误导了,她在a上加了一个mouseover事件,运行的效果是鼠标放在a上确实切换到了b。但是当你在a区域上移动的话,b就会一闪一闪的,这怎么可以!
我就开始从js开始看起,我在想是不是某一块代码写错了。可想而知,这么简单的效果一共也就那么几行代码,找来找去也没找出问题在哪。
我就在脑子里构想出这三个div的模型,一个大div包裹着两个同级的div,把mouseover放在a上,鼠标移动上去,b把a覆盖掉...
一下子就想通b为什么会一闪一闪的了。事件是放在a上的,b覆盖掉a,自然触发事件的条件就没有了,因为鼠标这个时候悬浮在b的上面而不是a了。好简单,心里骂了一句自己笨猪。
直接把mouseover事件放在最外层的div上不就解决了触发事件的元素被覆盖掉的问题了嘛
很多时候,我们的程序出现了bug,以至于两三天都解决不了的最终原因是我们把事情复杂化了
时间: 2024-09-29 12:09:26