>我正在使用Foundation 4 Joyride插件,但是一旦用户单击UI上的某个按钮,我需要它启动(并重新启动),但我无法这样做。通过遵循 Zurb 网站上提供的代码,我只能在网站首次运行时运行它。
Joyride 的文档在这里:
http://foundation.zurb.com/docs/components/joyride.html
我的初始化代码在这里
$(document).foundation().foundation('joyride', 'start', {template : { // HTML segments for tip layout
link : '<a href="#close" class="joyride-close-tip " style="background: url(../img/bp_sprite.png) no-repeat 0px -940px; margin-top: -4px; "> </a>',
timer : '<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',
tip : '<div class="joyride-tip-guide" style="background: white; color: black; margin-top: -27px; margin-left: 2px; border-top: 1px dashed #c1c1c1; width: 100%; max-width: 457px;"></div>',
wrapper : '<div class="joyride-content-wrapper" style="background-color: white; color: black; padding: 4px; "></div>',
button : '<a href="#" class="small button joyride-next-tip" style="display: none;"></a>'
}});
我也遇到了这个问题。您需要做的是用 ID 将标签包装在 a 中,然后针对该 ID 调用 joyride start 命令。
例如,标记可能如下所示:
<div id="joyrideDiv">
<ol class="joyride-list" data-joyride>
<li data-id="joyridedElement"><p>Here's the explanation</p></li>
</ol>
</div>
然后,您可以通过仅针对该div调用foundation(这是关键)来开始该欢乐之旅。调用将如下所示:
$("#joyrideDiv").foundation('joyride', 'start');
请注意,您传递的是包装器div 的 ID,而不是元素的 ID。我不得不在源头上四处寻找才能弄清楚。
如果将 autostart 属性设置为 true,也可以启动 joyride。 为了确保清除所有以前的欢乐之旅,如果您在几个游览之间切换,您可以通过调用 destroy 函数来清除以前的旅行。
jQuery(window).joyride("destroy");
jQuery("#ot-introduction").joyride({autoStart: true});