middle.addEventListener('mouseenter',show) middle.addEventListener('mouseleave',hide) large.addEventListener('mouseenter',show) large.addEventListener('mouseleave',hide) let timeId = null function show(){ clearTimeout(timeId) large.innerHTML=`<img src=${middle.children[0].src} alt="">` large.style.display= 'block' } function hide(){ timeId = setTimeout(function(){ large.style.display = "none !important" },200) } 为何上述代码仍然无法更改.large元素的display属性为none
时间: 2024-04-14 17:25:33 浏览: 196
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
5星 · 资源好评率100%
非常抱歉,我之前的回答有误导之处。在设置 display 属性时,使用 `!important` 并不适用于 JavaScript 的样式设置。`!important` 是用于 CSS 样式表中的,而不是在通过 JavaScript 直接设置样式时使用的。
要正确地将 `.large` 元素的 display 属性设置为 none,只需将代码修改为:
```javascript
large.style.display = 'none';
```
这样就可以正常隐藏 `.large` 元素了。
以下是修改后的代码:
```javascript
middle.addEventListener('mouseenter', show);
middle.addEventListener('mouseleave', hide);
large.addEventListener('mouseenter', show);
large.addEventListener('mouseleave', hide);
let timeId = null;
function show() {
clearTimeout(timeId);
large.innerHTML = `<img src=${middle.children[0].src} alt="">`;
large.style.display = 'block';
}
function hide() {
timeId = setTimeout(function() {
large.style.display = 'none';
}, 200);
}
```
抱歉再次给您带来困扰,希望这次能够解决您的问题。如果还有其他疑问,请随时提问。
阅读全文