2013-11-01 32 views
2

我使用introJS与骨干视图一起时,有一个问题: 我设立introJS代码是这样的:IntroJS在开始介绍后“刷新”突出显示的元素?

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

但在第一步中,如果用户做一些高亮区域(#ID1 ),“#id2”元素将被骨干视图重新渲染,导致introJS在进入步骤2时失败。

有没有一种方法可以在介绍中途“刷新”元素,以便在我的情况下,#id2可以通过introJS找到,即使它在介绍开始后重新生成?

回答

3

如果您正在使用inroJS仅作为用户界面演练那么你可以做以下

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; 
}