我在这里帮助一个学生,但我需要一些建议:
他们的模板包含带有一些锚标记的文章。这些锚标记代表"向上移动,向下移动和移除"。
这些文章将动态更改位置。
我在寻找的是: 当文章首次出现在页面上时,"上移"锚应该被删除。如果文章位于底部/最后位置,则"向下移动"锚应该被删除。
如果物品处于中间位置,则所有锚点都必须可用。
我知道我可以将类应用到页面上的第一篇和最后一篇文章......但是如何在不将它们列入列表的情况下专门定位这些文章。任何有关这方面的帮助将不胜感激!
<script type="text/template" id="message-edit-item-template">
<article class="well" data-message-id="<%= data.id %>">
<div class="message">
<div class="highlight clearfix">
<div class="actions">
<a href="#" data-remove="true" class="pull-right" title="Remove"><i class="fa fa-close"></i> Remove</a>
<a href="#" data-move-up="true" class="pull-right move-up" title="Move Up"><i class="fa fa-arrow-up"></i> Move Up</a>
<a href="#" data-move-down="true" class="pull-right move-down" title="Move Down"><i class="fa fa-arrow-down"></i> Move Down</a>
</div>
</div>
<div class="form-group">
<label>Title</label>
<input type="text" name="title" value="<%= data.title %>" class="form-control"/>
</div>
<div class="form-group">
<label>Message</label>
<textarea name="message" class="form-control"><%= data.message %></textarea>
</div>
</div>
</article>
答案 0 :(得分:1)
你应该使用CSS。
.actions:first-child .move-up, .actions:last-child .move-down {
display: none;
}
当您追加或添加新元素时,您的浏览器会根据它们是否与CSS选择器匹配来自动显示/隐藏元素。
答案 1 :(得分:1)
隐藏/显示怎么样?
如果您需要在文章动态更改位置时再次按下按钮,则隐藏按钮而不是删除 - 没有理由将其删除。
your_function_to_change_dynamically_articles_positions(){
// some code...
$(".move-up, .move-down").hide();
$(".move-up:not(:first)").show();
$(".move-down:not(:last)").show();
}
[更新JSfiddle]
$(".move-up").click(function(){
var $parent = $(this).closest('article');
$parent.insertBefore($parent.prev());
showHide();
});
$(".move-down").click(function(){
var $parent = $(this).closest('article');
$parent.insertAfter($parent.next());
showHide();
});
$(".remove").click(function(){
$(this).closest('article').remove();
showHide();
});
function showHide(){
$(".move-up, .move-down").show();
$(".move-up:first").hide();
$(".move-down:last").hide();
}
showHide();
答案 2 :(得分:1)
稍微不同的fixNavigation()可以在以后重复使用
$(document).ready(function() {
fixNavigation();
});
function fixNavigation() {
$('a.pull-right').show();
$('.well:first a.move-up').hide();
$('.well:last a.move-down').hide();
}