我做一个网页,原先的设想是,一个页面上有数个DIV,我只显示其中一个DIV,其他的隐藏,当我点击页面头部的链接的时候,js把所有DIV都隐藏,然后显示我点击链接所代表的DIV。
问题是出来了。当第一个DIV显示后,正在读取里面的元素,比如图片的时候,我点击头部链接,那图片就不会继续读了,就算我切换回来,它也停在那里了。
原先我以为是隐藏方式的问题,但我用了dislplay和visibility,都一样。后来同事启发了一下,说以前曾做过一个广告图片,当他点击关闭图片的链接的时候,会把图片隐藏,但会导致整个页面上所有的动画都停止的现象,他用的是<a href=# onclick="closeit()">来关的。后来他把href=#去掉了,并加上style="cursor:hand"来显示手形。这样图片可以隐藏掉,页面也不会有任何影响。
我照着把头部的链接改了,把原先的href="javascript:showit()"改成了onclick,至此问题解除,在我切换到其他DIV的时候,隐藏的DIV会继续读取页面元素。
我想,出现这种情况,可能是因为浏览器把href当作是页面跳转的语句,就算页面实际上没有转,它也认为原页面已经被跳转掉了,再读取上面元素已经没有意义,所以就全部停了。