2012-01-25 80 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/