我正在尝试从最初仅用于一个的代码创建4个画廊。我承认我几乎不知道JavaScript是一个自学成才的初学者。我遇到的问题是,当我在字符串中添加超过“照片”时,所有4个画廊都会退出工作。我毫不怀疑这是一个简单的语法修复但我无法找到它,也许我甚至不知道做一个正确的搜索,但我希望这里有人可以提供帮助。
function showPanel(el){
$('section').slideUp('fast');
$('section#'+el).slideDown(1500);
if (el == 'photos' && 'graphics' && 'web' && 'books') {
$('a.works').fancybox({'titlePosition' : 'inside'});
$('a.works.iframe').fancybox({ 'type' : 'iframe', 'titlePosition' : 'inside'})
$('#da-thumbs > article').hoverdir();
$('#filter a').on('click', function(){
$('#filter a').removeClass('active');
$(this).addClass('active');
});
filter();
} else if(el == 'about') {
$('.about .avatar').remove();
$('.home .avatar').clone().appendTo('.about #avatar');
$('.chart').easyPieChart({
animate : 500,
// ----------------------------
// Custom your chart color here
// ----------------------------
barColor : '#eb5b5e',
size : 110
});
} else if(el == 'contact') {
$('.gmap').mobileGmap();
}
}
答案 0 :(得分:3)
使用switch语句。在我的选择中,它更容易阅读。
switch (el) {
case 'photos':
case 'graphics':
case 'web':
case 'books':
//do stuff
break;
case 'about':
//do stuff
break;
case 'contact':
//do stuff
break;
}
答案 1 :(得分:1)
在if else
块中,您需要传递bool
值。否则它就不会起作用。所以,当你传递一个值。它一定是这样的
if (el == 'photos' && 'graphics' && 'web' && 'books') {
这意味着,如果el
变量等于照片和图形,那么现在编译器不会理解你试图告诉它的内容。 String != Bool
。
将条件更改为此
if (el == 'photos' && el == 'graphics' && el == 'web' && el == 'books') {
这会将每个条件更改为bool(true或false),然后执行代码块。如果el
等于照片图片网和书籍。
但是,变量不能容纳4个值。
所以你可以把它写成
if (el == 'photos' || el == 'graphics' || el == 'web' || el == 'books') {
它将检查el
是否具有所提及的值中的任何值。
答案 2 :(得分:1)
尝试
if ((el == 'photos') || (el == 'graphics') || (el == 'web') || (el == 'books')) {