2012-01-25 47 views
0

我有某种ELSIF statment的bug我找不到:的JavaScript如果/ ELSIF语句错误

我的jsfiddle:

http://jsfiddle.net/z3xV3/64/

的Jquery:

$('#slider1, #slider2, #slider3, #slider4, #slider5').bind('slide', function (event, ui) 
{ 
    var num = this.id.replace('slider',''); 

if(parseInt(num) == 1) { 
     $label = $('#boksTimer' + num).html((ui.value/31 * 60).toFixed(0) + ' GODT'); 
} 
elseif(parseInt(num) == 2) { 
     $label = $('#boksTimer' + num).html((ui.value/31 * 60).toFixed(0) + ' SUPER'); 
} 
else { 
     $label = $('#boksTimer' + num).html((ui.value/31 * 60).toFixed(0) + ' min pr. dag'); 
} 
     $thumb = $(this).children('.ui-slider-handle'); 

    $label.css({ 
     top: $label.outerHeight(true), 
     left :$thumb.position().left - ($label.width() - $thumb.width())/2 
    }); 
}); 
+0

怎么了?怎么了? – SLaks

+0

对于我们所知道的,这段代码应该完成它正在做的事情。你需要解释应该发生什么,什么不发生,以及你认为是什么问题。 – mowwwalker

+1

在jsFiddle中粘贴代码后,您会在标题为“JSLint”的菜单中看到一个按钮。点击它! –

回答

7

elseif是不是关键字。
你需要一个空间。

+0

我会批准你回答.... –

+0

@Railsbeginner:我同意这个消息 – qwertymk

+0

@qwertymk - 我要去兔子洞... –

2

孤单假设是其他人之间,如果空间else if(parseInt(num) == 2) {

2

虽然@SLaks向你解释为什么你的代码没有工作,我认为你应该使用这样的:

var text = ['GODT', 'SUPER']; 

$('#slider1, #slider2, #slider3, #slider4, #slider5').bind('slide', function (event, ui) 
{ 
    var num = parseInt(this.id.replace('slider','')), 
     $thumb = $(this).children('.ui-slider-handle'), 
     $label = $('#boksTimer' + num) 
        .html((ui.value/31 * 60).toFixed(0) + ' ' + (text[num - 1] || 'min pr. dag')); 

    $label.css({ 
     top: $label.outerHeight(true), 
     left :$thumb.position().left - ($label.width() - $thumb.width())/2 
    }); 
}); 

这是多少比整个if语句更干净。

这里是小提琴:http://jsfiddle.net/z3xV3/68/