[英]How to use jquery to create a “navigation” to hide and show content on the same page?
期望的情况 :从一开始就隐藏了所有测验内容,并且我有一个带li项的ul列表,作为我的“测验问题导航”,应该一次显示1个测验问题(带有btns广播选项和div分别)当点击“问题导航”时。
当前情况 :我正在考虑使用一个数组来检查相同的attr名称“ qns1”,但是我对JavaScript语法不熟悉
Java脚本
$(".span9").hide();
的HTML
<ul class="quiznav">
<li>Q1</li><br>
<li>Q2</li><br>
<li>Q3</li><br>
</ul>
<div class="span9">
<div class="qnstitle" name="qns1">Q1. Lorem ipsum dolor sit amet</div>
<label class="radio">
<input name="qns1" class="radioBtn" type="radio" value="A">a) asdf
</label>
<div class="resp" data-qns="qns1">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris aliquet ligula mi. Aenean eu magna quam. In ultrices nisi non tellus molestie ut mattis turpis convallis. </p>
</div>
<label class="radio">
<input name="qns1" class="radioBtn" type="radio" value="B">b) bsdf
</label>
<div class="resp" data-qns="qns1">
<p>Proin porta, ante eu feugiat facilisis, nulla erat porta dui, sed pellentesque orci sapien quis libero. Nam nec nibh metus, nec luctus massa.</p>
</div>
<label class="radio">
<input name="qns1" class="radioBtn" type="radio" value="C">c) csdf
</label>
<div class="resp" data-qns="qns1">
<p>Donec metus nibh, pharetra vitae semper id, blandit non lorem. Fusce ut metus a dui egestas congue quis quis augue. Suspendisse sed nunc sed nulla volutpat pharetra at vel purus.</p>
</div>
<br>
<div class="qnstitle" name="qns2">Q2. Nunc sed aliquet enim.</div>
<label class="radio">
<input name="qns2" class="radioBtn" type="radio" value="A">a) azzzddsaf
</label>
<div class="resp" data-qns="qns2">
<p>Donec metus nibh, pharetra vitae semper id, blandit non lorem.</p>
</div>
<label class="radio">
<input name="qns2" class="radioBtn" type="radio" value="B">b) bzzzzddafdsf
</label>
<div class="resp" data-qns="qns2">
<p>Aenean eu metus id dui tristique aliquam. Pellentesque non scelerisque nisi. Integer a nibh orci</p>
</div>
<label class="radio">
<input name="qns2" class="radioBtn" type="radio" value="C">c) czzdfasdf
</label>
<div class="resp" data-qns="qns2">
<p>Pellentesque turpis libero, consectetur nec dictum eu, accumsan a sapien. Integer eget ultrices risus. Pellentesque vel orci purus.</p>
</div>
<div class="qnstitle" name="qns3">Q3. Nunc sed aliquet enim.</div>
<label class="radio">
<input name="qns3" class="radioBtn" type="radio" value="A">a) azzzddsaf
</label>
<div class="resp" data-qns="qns3">
<p>Donec metus nibh, pharetra vitae semper id, blandit non lorem.</p>
</div>
<label class="radio">
<input name="qns3" class="radioBtn" type="radio" value="B">b) bzzzzddafdsf
</label>
<div class="resp" data-qns="qns3">
<p>Aenean eu metus id dui tristique aliquam. Pellentesque non scelerisque nisi. Integer a nibh orci</p>
</div>
<label class="radio">
<input name="qns3" class="radioBtn" type="radio" value="C">c) czzdfasdf
</label>
<div class="resp" data-qns="qns3">
<p>Pellentesque turpis libero, consectetur nec dictum eu, accumsan a sapien. Integer eget ultrices risus. Pellentesque vel orci purus.</p>
</div>
</div><!-- end of span9 -->
是的,将每个问题包装在div
是必要的。 这可能是您正在寻找的效果,会因导航的click事件而在当前问题中逐渐消失并在新问题中逐渐消失。 API .delay()
用于简化问题的转换。
$(".btn").click(function(){
$('.qns').fadeOut();
$('#qns' + $(this).html()).delay(450).fadeIn();
});
参见示例JSFIDDLE
您应该首先将每个问题包装在div
然后可以使用jQuery toggle()
根据问题导航的click事件显示和隐藏问题。
$(".btn").click(function(){
$("#" + $(this).text()).toggle("fast");
});
在此处查看示例FIDDLE 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.