jquery 幻灯片中的上一个和下一个顺序重复
jquery prev and next in slideshow in order repeatedly
请问为什么下面的代码不能依次通过1,2,3,1,2,3(jsfiddle)
当我继续按 "next".
当我打开 运行 Chrome 中的以下代码时,它无法 运行 按“1,2,3”顺序排列的代码(它在 3 处停止)。
HTML
<div id="slides">
<ul class="options-list">
<li><input type="radio" class="getradiotomove" id="bundle-73" name="bundle_option"checked="checked" value="73"></li>
<li><input type="radio" class="getradiotomove" id="bundle-72" name="bundle_option" value="72"></li>
<li><input type="radio" class="getradiotomove" id="bundle-74" name="bundle_option" value="74"></li>
</div>
<div id="buttons">
<a href="#" id="prev">prev</a>
<a href="#" id="next">next</a>
<div class="clear"></div>
</div>
JS
$('#next').click(function() {
var $all = $('.getradiotomove');
var $current = $('.getradiotomove:checked');
var index = $all.index($current) + 1;
if(index >= $all.length)
index = 0;
$($all[index]).attr('checked', 'checked');
return false;
});
给你另一种方法http://jsfiddle.net/hTgv3/162/
$('#next').click(function() {
if($('.getradiotomove:checked').parent().is(':last-child')){
$('ul[class="options-list"] > li')
.first()
.find('.getradiotomove')
.prop('checked', true);
} else {
$('.getradiotomove:checked')
.parent()
.next('li')
.find('.getradiotomove')
.prop('checked', true);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="slides">
<ul class="options-list">
<li><input type="radio" class="getradiotomove" id="bundle-73" name="bundle_option" value="73" checked></li>
<li><input type="radio" class="getradiotomove" id="bundle-72" name="bundle_option" value="72"></li>
<li><input type="radio" class="getradiotomove" id="bundle-74" name="bundle_option" value="74"></li>
</ul>
</div>
<div id="buttons">
<a href="#" id="prev">prev</a>
<a href="#" id="next">next</a>
<div class="clear"></div>
</div>
希望本文能帮助您解决问题。
请问为什么下面的代码不能依次通过1,2,3,1,2,3(jsfiddle)
当我继续按 "next".
当我打开 运行 Chrome 中的以下代码时,它无法 运行 按“1,2,3”顺序排列的代码(它在 3 处停止)。
HTML
<div id="slides">
<ul class="options-list">
<li><input type="radio" class="getradiotomove" id="bundle-73" name="bundle_option"checked="checked" value="73"></li>
<li><input type="radio" class="getradiotomove" id="bundle-72" name="bundle_option" value="72"></li>
<li><input type="radio" class="getradiotomove" id="bundle-74" name="bundle_option" value="74"></li>
</div>
<div id="buttons">
<a href="#" id="prev">prev</a>
<a href="#" id="next">next</a>
<div class="clear"></div>
</div>
JS
$('#next').click(function() {
var $all = $('.getradiotomove');
var $current = $('.getradiotomove:checked');
var index = $all.index($current) + 1;
if(index >= $all.length)
index = 0;
$($all[index]).attr('checked', 'checked');
return false;
});
给你另一种方法http://jsfiddle.net/hTgv3/162/
$('#next').click(function() {
if($('.getradiotomove:checked').parent().is(':last-child')){
$('ul[class="options-list"] > li')
.first()
.find('.getradiotomove')
.prop('checked', true);
} else {
$('.getradiotomove:checked')
.parent()
.next('li')
.find('.getradiotomove')
.prop('checked', true);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="slides">
<ul class="options-list">
<li><input type="radio" class="getradiotomove" id="bundle-73" name="bundle_option" value="73" checked></li>
<li><input type="radio" class="getradiotomove" id="bundle-72" name="bundle_option" value="72"></li>
<li><input type="radio" class="getradiotomove" id="bundle-74" name="bundle_option" value="74"></li>
</ul>
</div>
<div id="buttons">
<a href="#" id="prev">prev</a>
<a href="#" id="next">next</a>
<div class="clear"></div>
</div>
希望本文能帮助您解决问题。