事件写到js里不成功的问题

事件写到js里不成功的问题

function show_menu(){

var menu2=document.getElementById("menu2");

if(flag){

menu2.style.display="block";

flag=false;

}else{

menu2.style.display="none";

flag=true;

}

}

document.getElementById("menu0").onmouseleave=function(){

var menu2=document.getElementById("menu2");

menu2.style.display="none";

flag=true;

}

http://img1.sycdn.imooc.com//climg/5ee733f2099d9c9007830135.jpg下面的鼠标离开事件成功不了的原因是什么

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕阿莹 2020-06-15 17:41:29

同学你好

根据报错提示,不能给null设置属性onmouseleave

http://img1.sycdn.imooc.com//climg/5ee74169092f467f07630122.jpg

也就是说document.getElementById("menu0")  是null

请检查一下你的html文件中,是否有有id是menu0的元素,

如果有,这段js代码是在html的上边加载的还是下边加载的,建议在html结束的时候再加载js文件例如

</body> 标签前后,避免因为先加载js,还没加载到对应的html元素而导致类似问题。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 科科2020 #1
    有menu0。我在titile下用 <script>导入的外部js文件(老师一直这样教的呀)。在html结束的时候在加载是什么意思?以前的课程在js里直接写事件的时候,也没有非得把加载js文件写到body后面啊 这次为什么需要了。不太懂
    2020-06-15 18:01:16
  • 好帮手慕阿莹 回复 提问者 科科2020 #2
    有时候js中使用html中元素时,可能还没有加载到html的元素,所以有时候可能会发生找不到对应元素的问题。同学把代码都贴全吧,老师测试一下。祝学习愉快
    2020-06-15 18:11:24
  • onmouseleave 这个事件找不到 手册里也没有啊
    2020-06-22 16:14:30
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师