注册事件的两种方式为何出现意外效果?
为什么两种注册事件的方法一个报错一个正常?
给定有隐藏下拉列表的 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 <p><strong>问题:</strong></p><p>方法二报错,提示:"cannot set property 'onmouseover' of undefined at window.onload"。</p><p><strong>原因:</strong></p><p><strong>盲猜:</strong>下标越界。案例 1 只有 0,1,2,而案例 2 可能不止 0,1,2。</p><p><strong>验证:</strong></p><p>打印两个数组发现,它们的长度不相等。因此,在方法二中,当side bar中li元素的数量多于隐藏下拉列表时,就会出现下标越界错误。</p>
以上就是注册事件的两种方式为何出现意外效果?的详细内容,更多请关注其它相关文章!