有没有办法用foundation 5 Joyride切换标签?我在页面上有基础选项卡,并希望 Joyride 将元素指向不同的选项卡。
问问题
282 次
2 回答
0
就像 Steven 的评论中提到的那样,您可以在激活所需选项卡的前或后步骤回调函数中使用回调。
post_step_callback : function (){}, // A method to call after each step
pre_step_callback : function (){} // A method to call before each step
希望这可以帮助...
于 2015-01-09T11:34:50.870 回答
0
这对我有用。我环顾四周,找不到任何有用的东西,所以写了这个。最难的部分是弄清楚如何获取目标锚的 id。这被发现隐藏在回调可用的“this”对象中。
$(this.$target)[0].id;
基础使用“内容”类来标识单击选项卡时要显示的内容。因此,遍历 .parents 树查找封闭元素会为您提供包含链接的内容选项卡。然后当然您必须向<a>
要单击的选项卡的元素添加一个 id。如果您将其命名为与您的内容 div 相同,并附加“-a”,那么您应该很高兴。
html:
<dl class="tabs radius" data-tab id="my_tabs">
<dd class="active"><a href=\"#tab1\" id=\"tab1-a\">Tab 1</a></dd>
<dd class="active"><a href=\"#tab2\" id=\"tab2-a\">Tab 2</a></dd>
</dl>
<div class="tabs-content">
<div class="content" id="tab1">
<article id="joyride_stop1">...</article>
</div>
<div class="content" id="tab2">
<article id="joyride_stop2">...</article>
</div>
</div>
js:
$(document).ready(function() {
$(document).foundation('joyride', 'start', {
pre_step_callback: function(i, tip) {
var target = $(this.$target)[0].id;
if($('#' + target).parents('.content').length > 0) {
$('#' + target).parents('.content').each(function() {
var id = $(this).attr('id');
if($('#' + id).is(':visible') == false) {
$('#' + id + '-a').click();
}
});
}
}
});
});
这将适用于任何页面,无论它是否包含选项卡,因此它可以普遍包含在整个站点中。
于 2015-03-07T22:38:09.143 回答