之外我有內部下面一個PHP foreach循環:當顯示循環的最後一個元素,展現另一種元素循環
<div class="form-row">...</div>
這可以創建form-row
div的無限量。我有下一個/後退按鈕,一次只顯示一個,所以你可以前後移動。
以外的是我有這個按鈕:
<button class="test"></button>
我想要做的東西像下面這樣:
$('.form-row:last'){
$('button.test').show();
}
例如,當它的form-row
div的最後一個元素,我希望它顯示按鈕。
我該怎麼做?
如果是在form-row
循環,那麼我只會使用$('button.test').last().show();
,但因爲它超出了這個範圍,所以我不知道該怎麼做。
這是我的全碼:
<?php global $current_user;
get_currentuserinfo();
$user = $current_user->user_login; ?>
<form class="form" method="POST" action="<?php bloginfo('stylesheet_directory'); ?>/training-insert.php">
<input type="hidden" value="<?php echo $user; ?>" name="test-user" />
<input type="hidden" value="<?php echo the_title(); ?>" name="test-name" />
<?php $counter = 1; if(get_field('step_by_step_training')): ?>
<?php while(the_repeater_field('step_by_step_training')): ?>
<div class="form-row">
<h2 style="float:left;margin-left:7px;">
<?php the_title(); ?>
</h2>
<h2 style="float:right;"><?php echo $counter; ?> of <?php echo $total; ?></h2>
<div class="clear"></div>
<div id="module-area" style="margin-top:0px!IMPORTANT;">
<div id="modules-top"></div>
<div id="modules-repeat">
<p class="training"><?php echo the_sub_field('introduction'); ?></p>
<?php if(get_sub_field('training_images')): ?>
<?php while(has_sub_field('training_images')): ?>
<img class="training" src="<?php echo the_sub_field('image'); ?>" />
<?php endwhile; ?>
<?php endif; ?>
<p class="training"><?php echo the_sub_field('conclusion'); ?></p>
<div class="inner"></div>
<button class="next"></button>
<button class="end"></button>
<div class="clear"></div>
</div>
<div style="margin-bottom:5px;" id="modules-bottom"></div>
</div>
</div>
<?php $counter++; endwhile; ?>
<?php endif; ?>
</form>
<?php if (get_field('test') != "") { ?>
<form class="form" method="POST" action="<?php bloginfo('stylesheet_directory'); ?>/training-insert-alt.php">
<input type="hidden" value="<?php echo $user; ?>" name="test-user" />
<input type="hidden" value="<?php echo the_title(); ?>" name="test-name" />
<input type="hidden" value="<?php echo the_field('test'); ?>" name="test-link" />
<button class="test"></button>
</form>
<?php } ?>
<div class="clear"></div>
</div>
</div>
<?php endwhile; endif; ?>
</div>
<?php get_footer(); ?>
<script type="text/javascript">
jQuery(function($) {
$(document).ready(function() {
// prepend a 'previous' button to all form-rows except the first
$('<button>').addClass('previous').appendTo($('.inner').not(':first'));
// hide all form-rows, but not the first one
$('.form-row').not(':first').hide();
// hide on last step
$('button.next').last().hide();
$('button.end').last().show();
if($('.form-row:last').is(':visible')) {
$('button.test').show();
}
// add the submit button to the last form-row
// $('<input>').addClass('submit').prop('type', 'submit').val('My Dashboard').appendTo($('.form-row:last'));
// handle the previous button, we need to use 'on' here as the
// previous buttons don't exist in the dom at page load
$('.form-row').on('click', 'button.previous', function(e) {
e.preventDefault();
$(this).parents('div.form-row').hide().prev('div.form-row').show();
});
$('button.next').click(function(e) {
// prevent the next buttons from submitting the form
e.preventDefault();
// hide this form-row, and show the next one
$(this).parents('div.form-row').hide().next('div.form-row').show();
});
});
});
</script>
也許這樣? http://api.jquery.com/last/ – GoE
@GoE該按鈕位於循環之外,所以使用last時似乎不適用於我嘗試的操作。 – Rob
你可以發佈你的循環?那麼我們可以更好地幫助您 – GoE