我使用的是javascript,但我认为这个想法适用于所有语言。这个想法是,如果您有4个数字中的1个,您可以获得其他数字。像这样:
1 = 234
2 = 134
3 = 124
4 = 123
如果你有1,你输出234,等等,最有效的方法是什么?你必须使用数组,循环吗?
类似:
var fruits = ["#apple", "#orange", "#peach"];
for (i = 0; i <= fruits.length-1; i++) {
$(fruits[i]).show;
$(fruits[WANT TO BE not i]).hide;//on loop would want to be other number besides i
$(fruits[WANT TO BE not i]).hide;//on loop would want to be other number besides i
}
答案 0 :(得分:2)
我不知道效率,但由于你已经在使用jquery,为什么不这样做:
<div id="apple" class="fruit">...</div>
<div id="orange" class="fruit">...</div>
<div id="peach" class="fruit">...</div>
$('.fruit').click(function() {
$('.fruit').hide();
$(this).show();
});
编辑:
如果我正确识别您的需要,您希望每次用户在编辑幻灯片上单击2时显示幻灯片2。
在这种情况下,您可以将id和class附加到要显示的幻灯片,如下所示:
<div id="slide_1" class="slide"><img src="1.jpg" /></div>
<div id="slide_2" class="slide"><img src="2.jpg" /></div>
<div id="slide_3" class="slide"><img src="3.jpg" /></div>
并将rel添加到您的
<ul class="navigationList">
<li><a href="#" rel="slide_1">1</a></li>
<li><a href="#" rel="slide_2">2</a></li>
<li><a href="#" rel="slide_3">3</a></li>
</ul>
现在javascript:
$('ul.navigationList li a').click(function(e) {
e.preventDefault();
var slideId = $(this).attr('rel');
$('.slide').hide();
$('#' + slideId).show();
return false;
});
同样,这只是其中一种方式。
答案 1 :(得分:1)
我认为这太过分了,但是如果你需要使用我无法想象的用例来做这件事,你总是可以这样做(使用你的水果示例):
var fruits = ["#apple", "#orange", "#peach"];
function showOne(n)
{
for(i = 0; i < fruits.length; ++i)
{
if(n != i)
{
$(fruits[i]).hide();
}
else
{
$(fruits[i]).show();
}
}
}
$(document).ready(function(){
showOne(2);
});
<强> Fiddle here 强>
修改强>
基于查看来源的一些事情(1和2只是我自己的意见:)):
HTML:
<a onclick="nav('slides'); return false;" href="#slides">Edit Slides</a>
<a onclick="nav('pages'); return false;" href="#pages">Edit Pages</a>
<a onclick="nav('projects'); return false;" href="#projects">Edit Projects</a>
脚本:
function nav(panel)
{
$('.section').hide();
$(panel).show();
}
KISS。没有理由让事情过于复杂:)