首页 新闻 搜索 专区 学院

JS改变样式的id或class会继承原先的特性么?

0
悬赏园豆:10 [已解决问题] 解决于 2013-11-18 22:44

如题,用js改变了层DIV的样式id或者class,原先的特性,比如单击事件,鼠标悬浮事件会继承原先的样式么?

初阳暮雪的主页 初阳暮雪 | 初学一级 | 园豆:107
提问于:2013-11-18 16:21
< >
分享
最佳答案
1

不会,样式是即时计算的,当你的div的class改变时,这个div以及相关的部分都会reflow,重新计算样式。

所以原先的伪类在div重新计算后失去作用了,如果是事件里面改变div的class,同样会导致div的reflow,始终会保证div的样式是正确的。

收获园豆:10
Shine Ss | 菜鸟二级 |园豆:214 | 2013-11-18 16:34

例“<div id=”div“ onclick="d1()"> </div> 改变id 后应变为<div id=”div2“>?还是<div id=”div2“ onclick="d1()">  刚在做个页面。一怒之下直接用display。世界清净了,不过还是想搞清楚改变id样式到底都有什么改变了

初阳暮雪 | 园豆:107 (初学一级) | 2013-11-18 16:52

@初阳暮雪: id只是你的div的属性,改变属性,不会改变你这个div所绑定的事件的,所以原来绑定的事件依然存在。

但是有些属性会触发CSS计算,会导致样式重新计算和渲染。

还有就是改变ID,会导致你的JS里面所有用到这个ID的语句语句失效。

所以一般我们不改变ID,ID就是标签的唯一标识。

Shine Ss | 园豆:214 (菜鸟二级) | 2013-11-18 18:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册