【发布时间】:2018-03-20 12:18:18
【问题描述】:
我想实现一个跳转到功能。它基本上就像一个面包屑,但不完全是。它是dropdown,可以有左右按钮。请参阅下面的代码:
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<div class="btn-group" role="group" aria-label="...">
<a href="previousItemIfHas" class="btn btn-default">←</a>
<div class="btn-group" role="group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Jump to
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="#">Assignment1</a></li>
<li><a href="#">Quiz2</a></li>
<li><a href="#">Quiz4</a></li>
<li><a href="#">Assignment2</a></li>
</ul>
</div>
<a href="nextItemIfHas" class="btn btn-default">→</a>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
控制器
$course = Course::with([
'assignments' => $undeleted,
'quizzes' => $undeleted,
'add_links' => $undeleted
])->findOrFail($course_id);
$course_items = collect($course->assignments);
$course_items = $course_items->merge(collect($course->quizzes));
$course_items = $course_items->merge(collect($course->add_links));
$course_items = $course_items->sortBy('item_number');
想要的结果:
如果$course 循环,它可以列出按item_number 排序的项目。如果你点击第一项,那么应该有no left arrow,和最后一项一样,如果你点击最后一项,应该有no @987654329 @。项目列表在我创建的dropdown 中列出。
问题
如果item 是第一项,我不知道如何添加条件,这样我就可以删除左键,与最后一项相同。
注意:我使用的是 laravel 5.1
【问题讨论】:
-
那么箭头按钮的行为是什么?它们是否链接到上一页和下一页?另外,下拉项目本身也是链接吗?如果它们是链接,您是重新渲染标记服务器端(刀片)还是在前端处理转换?
-
类似这样的:introjs.com ?
-
@alepeino 是的,它们是链接,
left arrow是集合中的前一项,right arrow是下一项。是的,下拉项目也是链接。我已经列出了这些项目,但我无法弄清楚left and right按钮的逻辑 -
@ThomasMoors 有点像,但请看我上面的标记。
-
@Hash - 查看paginators。