2

我在使用 introJS 和 Backbone 视图时遇到问题:我设置 introJS 的代码是这样的:

introJs.setOptions({steps: [
  {element:"#id1", intro: "something about id1"},
  {element:"#id2", intro: "something about id2"},
]});

但是在第一步中,如果用户在突出显示的区域(#id1)中做某事,“#id2”元素将被主干视图重新渲染,导致进入第 2 步时 introJS 失败。

有没有办法在介绍的中途“刷新”元素,这样在我的情况下,即使在介绍开始后重新生成#id2,introJS 也可以找到它?

4

1 回答 1

3

如果您仅将 inroJS 用作 UI 演练,那么您可以执行以下操作

introjs.onbeforechange(function(targetElem){
    var jqElem = '#' + targetElem.id;
    $(jqElem).addClass('handle-events');
});

introjs.oncomplete(function() {
    $('.handle-events').removeClass('handle-events');
});

在css中你可以添加以下行

.handle-events {
    pointer-events: none;
    cursor: default;
}
于 2013-11-20T07:06:15.447 回答