让一组div显示和隐藏的jquery特效
2015-04-21 10:33
190 查看
先说明需求:一个页面有多个div和button,一个div对应一个button,需要在点击的某个button的时候,显示对应的div,其余div隐藏
很简单,挨个写事件,在每个button的单击事件写入让本button对应的div显示,其他的隐藏。直接上代码:
$(document).ready(function(){
$('#btn-div1').click(function(){
$("#div1").show();
$("#div2").hide();
$("#div3").hide();
$("#div4").hide();
});
$('#btn-div2').click(function(){
$("#div1").hide();
$("#div2").show();
$("#div3").hide();
$("#div4").hide();
});
$('#btn-div3').click(function(){
$("#div1").hide();
$("#div2").hide();
$("#div3").show();
$("#div4").hide();
});
$('#btn-div4').click(function(){
$("#div1").show();
$("#div2").hide();
$("#div3").hide();
$("#div4").show();
});
});
很好不是吗,解决了问题,已测试正常通过,nice work。
但是,雇主忽然又来了消息:需要加五组button和div。对很简单,再继续写上去,我估计换谁都有点不情愿了,设想一下,如果用户再让添加十个呢?二十个呢?更多呢?
得优化代码啊,效率啥的先不说,至少不能一直这样做很多无用功啊。
想了半天,用一个数组组织关系对,然后用函数优化操作,上代码:
$(document).ready(function(){
$("#div1").show();
var name = ['#div1', '#div2', '#div3', '#div4'];
$('#btn-div1').click(function(){
test(0, name);
});
$('#btn-div2').click(function(){
test(1, name);
});
$('#btn-div3').click(function(){
test(2, name);
});
$('#btn-div4').click(function(){
test(3, name);
});
});
function test(m, name){
$.each(name, function(n, item){
if(m == n){
$(item).show();
}else{
$(item).hide();
}
});
}
当有新的关系对添加进来,只需要在数组中添加新的元素,就OK,感觉代码也不是那么臃肿了,简洁,高效~
如果有什么更好的方法,请留言告诉我,分享就是快乐~
很简单,挨个写事件,在每个button的单击事件写入让本button对应的div显示,其他的隐藏。直接上代码:
$(document).ready(function(){
$('#btn-div1').click(function(){
$("#div1").show();
$("#div2").hide();
$("#div3").hide();
$("#div4").hide();
});
$('#btn-div2').click(function(){
$("#div1").hide();
$("#div2").show();
$("#div3").hide();
$("#div4").hide();
});
$('#btn-div3').click(function(){
$("#div1").hide();
$("#div2").hide();
$("#div3").show();
$("#div4").hide();
});
$('#btn-div4').click(function(){
$("#div1").show();
$("#div2").hide();
$("#div3").hide();
$("#div4").show();
});
});
很好不是吗,解决了问题,已测试正常通过,nice work。
但是,雇主忽然又来了消息:需要加五组button和div。对很简单,再继续写上去,我估计换谁都有点不情愿了,设想一下,如果用户再让添加十个呢?二十个呢?更多呢?
得优化代码啊,效率啥的先不说,至少不能一直这样做很多无用功啊。
想了半天,用一个数组组织关系对,然后用函数优化操作,上代码:
$(document).ready(function(){
$("#div1").show();
var name = ['#div1', '#div2', '#div3', '#div4'];
$('#btn-div1').click(function(){
test(0, name);
});
$('#btn-div2').click(function(){
test(1, name);
});
$('#btn-div3').click(function(){
test(2, name);
});
$('#btn-div4').click(function(){
test(3, name);
});
});
function test(m, name){
$.each(name, function(n, item){
if(m == n){
$(item).show();
}else{
$(item).hide();
}
});
}
当有新的关系对添加进来,只需要在数组中添加新的元素,就OK,感觉代码也不是那么臃肿了,简洁,高效~
如果有什么更好的方法,请留言告诉我,分享就是快乐~
相关文章推荐
- js控制div显示与隐藏
- Div+Css+JS做多个显示/隐藏内容块
- css中将鼠标放到一个div上显示出另一个隐藏的div
- jquery之超简单的div显示和隐藏特效demo
- 利用JS做到隐藏div和显示div
- div 显示与隐藏
- div 隐藏和显示
- 简单运用Javascript,使<input/>控制display属性div的显示隐藏
- 鼠标滑过文字,显示隐藏的div,离开后div隐藏
- jquery 显示隐藏div方法show(),hide(),toggle(),slideDown()总结
- JavaScript实现DIV层的隐藏与显示
- div的显示和隐藏
- 滚动条事件,当页面滚动到距顶部一定高度时某DIV自动隐藏和显示
- 根据class显示或隐藏多个div
- 利用JS做到隐藏div和显示div
- 对于单文本或者div的内容怎么在显示东西过多的情况下实现显示隐藏
- javascript 控制 DIV等html元素的显示和隐藏
- [HTML]显示/隐藏DIV的技巧(visibility与display的差别)
- Jquery使用----控制Div动画显示、隐藏
- 用RadioButten或CheckBox实现div的显示与隐藏