【发布时间】:2020-11-27 21:25:46
【问题描述】:
我需要在加载步骤之前触发对页面的更改。 (具体来说,我需要在下一步之前触发一个菜单打开;下一步将突出显示该打开的菜单。)我正在使用 introJS.onbeforechange() 来完成此操作,效果很好。在事件处理程序内部,当到达正确的步骤时,触发菜单打开。该步骤位于页面上步骤的中间。在最后一步之后,介绍在另一页继续。
在页面的最后一步,当我单击右箭头(“下一步”按钮被隐藏)时,这应该会在新页面上重新开始介绍。但不是这样,而是产生了一个错误:
intro.min.js:10 Uncaught TypeError: Cannot read property 'element' of undefined
at J.E (intro.min.js:10)
at J.L (intro.min.js:10)
at l (intro.min.js:10)
这是由于存在 onbeforechange 处理程序造成的。
这是 intro.js 中失败的代码:
if (typeof (this._introBeforeChangeCallback) !== 'undefined') {
continueStep = this._introBeforeChangeCallback.call(this, nextStep.element);
}
onbeforechange 里面的代码块是从不触发的,也就是说错误是在那之前触发的。如果我删除 onbeforechange 处理程序,则不会出现此类错误。
Onbeforechange 似乎无法处理在最后一步点击右箭头,并且无法检测到这一点来消除错误。
【问题讨论】:
标签: intro.js