为什么两种注册事件的方法一个报错一个正常?

给定有隐藏下拉列表的 li 元素,鼠标悬浮时显示下拉列表,移开鼠标时隐藏下拉列表。

两种注册事件的方法:

  • 方法一:
function setfun2(event_n1, event_n2) {
    // 代码略
}
// 分别为 sidebar 的 li 元素和隐藏的下拉列表注册事件
setfun2(sidebarli[0], itemhidden[0]);
setfun2(sidebarli[1], itemhidden[1]);
setfun2(sidebarli[2], itemhidden[2]); 
登录后复制
  • 方法二:
for (let i = 0; i < sideBarLi>  登录后复制   

问题:

方法二报错,提示:"cannot set property 'onmouseover' of undefined at [removed]"。

原因:

盲猜:下标越界。案例 1 只有 0,1,2,而案例 2 可能不止 0,1,2。

验证:

打印两个数组发现,它们的长度不相等。因此,在方法二中,当side bar中li元素的数量多于隐藏下拉列表时,就会出现下标越界错误。

以上就是注册事件的两种方式为何出现意外效果?的详细内容,更多请关注慧达安全导航其它相关文章!

点赞(0)

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部