我的第一个问题是:我有5张图片,点击后显示一个相关的div,然后隐藏其余的。我就是这样对它进行编码的,我只是觉得这是一种杂乱无章的编码方式。我是jQuery的新手,我只是征求你的意见。这是我的代码:
$(document).ready(function(){
$("#featured > ul").tabs({fx:{opacity: "toggle"}}).tabs("rotate", 5000, true);
$('#nav-fragment-0').fadeTo("slow", 1);
$('#nav-fragment-1').fadeTo("slow", 0.33);
$('#nav-fragment-2').fadeTo("slow", 0.33);
$('#nav-fragment-3').fadeTo("slow", 0.33);
$('#nav-fragment-4').fadeTo("slow", 0.33);
$("#nav-fragment-0").click(function() {
$('#fragment-0').show();
$('#fragment-1').hide();
$('#fragment-2').hide();
$('#fragment-3').hide();
$('#fragment-4').hide();
$('#nav-fragment-0').fadeTo("slow", 1);
$('#nav-fragment-1').fadeTo("slow", 0.33);
$('#nav-fragment-2').fadeTo("slow", 0.33);
$('#nav-fragment-3').fadeTo("slow", 0.33);
$('#nav-fragment-4').fadeTo("slow", 0.33);
});
$("#nav-fragment-1").click(function() {
$('#fragment-1').show();
$('#fragment-0').hide();
$('#fragment-2').hide();
$('#fragment-3').hide();
$('#fragment-4').hide();
$('#nav-fragment-1').fadeTo("slow", 1);
$('#nav-fragment-0').fadeTo("slow", 0.33);
$('#nav-fragment-2').fadeTo("slow", 0.33);
$('#nav-fragment-3').fadeTo("slow", 0.33);
$('#nav-fragment-4').fadeTo("slow", 0.33);
})
$("#nav-fragment-2").click(function() {
$('#fragment-2').show();
$('#fragment-0').hide();
$('#fragment-1').hide();
$('#fragment-3').hide();
$('#fragment-4').hide();
$('#nav-fragment-2').fadeTo("slow", 1);
$('#nav-fragment-0').fadeTo("slow", 0.33);
$('#nav-fragment-1').fadeTo("slow", 0.33);
$('#nav-fragment-3').fadeTo("slow", 0.33);
$('#nav-fragment-4').fadeTo("slow", 0.33);
})
$("#nav-fragment-3").click(function() {
$('#fragment-3').show();
$('#fragment-0').hide();
$('#fragment-1').hide();
$('#fragment-2').hide();
$('#fragment-4').hide();
$('#nav-fragment-3').fadeTo("slow", 1);
$('#nav-fragment-0').fadeTo("slow", 0.33);
$('#nav-fragment-1').fadeTo("slow", 0.33);
$('#nav-fragment-2').fadeTo("slow", 0.33);
$('#nav-fragment-4').fadeTo("slow", 0.33);
})
$("#nav-fragment-4").click(function() {
$('#fragment-4').show();
$('#fragment-0').hide();
$('#fragment-1').hide();
$('#fragment-2').hide();
$('#fragment-3').hide();
$('#nav-fragment-4').fadeTo("slow", 1);
$('#nav-fragment-0').fadeTo("slow", 0.33);
$('#nav-fragment-1').fadeTo("slow", 0.33);
$('#nav-fragment-2').fadeTo("slow", 0.33);
$('#nav-fragment-3').fadeTo("slow", 0.33);
})
});下面是包含单击的导航图像的UL
<ul class="ui-tabs-nav ui-tabs ui-widget ui-widget-content ui-corner-all">
<li class="ui-tabs-nav-item ui-tabs-selected"><a><img src="2013/08/16-150x112.jpg" alt="" width="90" height="57" id="nav-fragment-0" ></a></li>
<li class="ui-tabs-nav-item ui-tabs-selected"><a><img src="2013/05/1-150x112.jpg" alt="" width="90" height="57" id="nav-fragment-1" ></a></li>
<li class="ui-tabs-nav-item ui-tabs-selected"><a><img src="2013/06/P6172474-150x112.jpg" alt="" width="90" height="57" id="nav-fragment-2" ></a></li>
<li class="ui-tabs-nav-item ui-tabs-selected"><a><img src="2011/12/Florence.out_-150x112.jpg" alt="" width="90" height="57" id="nav-fragment-3" ></a></li>
<li class="ui-tabs-nav-item ui-tabs-selected"><a><img src="2013/08/11-150x112.jpg" alt="" width="90" height="57" id="nav-fragment-4" ></a></li>
</ul>这是div:
<div id="fragment-0" class="ui-tabs-panel ui-tabs-hide"></div>
<div id="fragment-1" class="ui-tabs-panel ui-tabs-hide"></div>
<div id="fragment-2" class="ui-tabs-panel ui-tabs-hide"></div>
<div id="fragment-3" class="ui-tabs-panel ui-tabs-hide"></div>
<div id="fragment-4" class="ui-tabs-panel ui-tabs-hide"></div>第二个问题是,我如何让它们在10秒后弹出,然后继续循环?
发布于 2013-08-21 15:42:11
我认为,这或多或少应该是可行的,您需要在所有项中添加一个类(class="itemClass"):
for (i=0; i<=4; i++) {
$("#nav-fragment-" + i).click(function() {
$(".itemClass").hide().fadeTo("slow", 0.33);
$("#fragment-" + i).show().fadeTo("slow", 1);
});
}发布于 2013-08-21 15:53:10
根据您的html,您可以这样做:
$(this).fadeTo("slow", 1);
$(this).siblings(".nav-fragment").fadeTo("slow", 0.33);发布于 2013-08-21 15:43:13
给与图像和图像本身相关的所有div一个类。比如:
<img src="#" class="someImg" />
<img src="#" class="someImg" />
<img src="#" class="someImg" />
<img src="#" class="someImg" />
<img src="#" class="someImg" />
<div class="relatedDiv"> ... </div>
<div class="relatedDiv"> ... </div>
<div class="relatedDiv"> ... </div>
<div class="relatedDiv"> ... </div>
<div class="relatedDiv"> ... </div>现在,使用jQuery检查单击了哪一个:
$(".someImg").click(function(){
var eq = $(this).index() - 1; // because index() is one-based and eq() is zero-based
$(".someImg").fadeTo("slow", 0.33);
$(this).fadeTo("slow", 1);
$(".relatedDiv").hide().eq(eq).show();
})至于问题的第二部分,您可以使用setInterval函数(如果设置像"active“这样的额外类来确定当前选择的图像之一,会更容易一些)
https://stackoverflow.com/questions/18361477
复制相似问题