美好的一天!
我想问一些问题。有没有这样的方法可以缩短我在jquery中的这些线?我的意思是特别在if-else部分。谢谢!
$("#banner a").bind("click",function(event){//2
event.preventDefault();
target = $(this).attr("href");
if(target=="#home"){
$("#prevID").attr("class","");
$("#nextID").attr("class","next");
$("#nextID").attr("href","#home");
$("#prevID").attr("href","#home");
}else if(target=="#newsletter"){
$("#prevID").attr("class","prev");
$("#nextID").attr("href","#newsletter");
$("#prevID").attr("href","#newsletter");
}else if(target=="#directions"){
$("#prevID").attr("class","prev");
$("#nextID").attr("href","#directions");
$("#prevID").attr("href","#directions");
}else if(target=="#contact"){
$("#prevID").attr("class","prev");
$("#nextID").attr("class","");
$("#nextID").attr("href","#contact");
$("#prevID").attr("href","#contact");
}else{}
$("html, body").stop().animate({
scrollLeft: $(target).offset().left,
scrollTop: $(target).offset().top
}, 1200);
});//closing 2
$(".next").bind("click",function(event){//3
event.preventDefault();
target = $(this).attr("href");
if(target=='#home'){
a='#newsletter';
$(".next").attr("href","#newsletter");
$("#prevID").attr("class","prev");
$("#prevID").attr("href","#newsletter");
}else if(target=='#newsletter'){
a='#directions';
$(".next").attr("href","#directions");
$("#prevID").attr("href","#directions");
}else if(target=='#directions'){
a='#contact';
$(".next").attr("href","#contact");
$("#prevID").attr("href","#contact");
$(".next").attr("class","");
}else{}
$("html, body").stop().animate({
scrollLeft: $(a).offset().left,
scrollTop: $(a).offset().top
}, 1200);
// $(".next").attr("href","#");
});//closing 3
$("#prevID").bind("click",function(event){//3
event.preventDefault();
target = $(this).attr("href");
if(target=='#newsletter'){
a='#home';
$("#prevID").attr("href","#home");
$(".next").attr("href","#home");
$("#prevID").attr("class","");
}else if(target=='#directions'){
a='#newsletter';
$("#prevID").attr("href","#newsletter");
$(".next").attr("href","#newsletter");
}else if(target=='#contact'){
a='#directions';
$("#prevID").attr("href","#directions");
$("#nextID").attr("class","next");
$("#nextID").attr("href","#directions");
}else{}
$("html, body").stop().animate({
scrollLeft: $(a).offset().left,
scrollTop: $(a).offset().top
}, 1200);
// $(".next").attr("href","#");
});//closing 3
});
看起来有点匆忙。此外,我仍然学习jquery所以我对非常规语法表示道歉。 :)
答案 0 :(得分:0)
您可能会在http://codereview.stackexchange.com中获得对此请求的更多响应,但是这里有一个关于如何简化第一个代码块并避免使用查找表而不是多个{{1}重复使用大量代码的想法}声明:
if/else if