登录
首页 >  文章 >  前端

注册事件的两种方式为何出现意外效果?

来源:php

时间:2024-11-02 12:04:00 179浏览 收藏

本篇文章给大家分享《注册事件的两种方式为何出现意外效果?》,覆盖了文章的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

注册事件的两种方式为何出现意外效果?

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

给定有隐藏下拉列表的 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.length; i++) {
    // 代码略
}

问题:

方法二报错,提示:"cannot set property 'onmouseover' of undefined at window.onload"。

原因:

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

验证:

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

今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:php 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>