2014-01-09 108 views
1

我是一個有jQuery滑塊的新手,所以請耐心等待!jQuery滑塊調用另一個函數

我想打電話給我updateData(input)功能與不同的輸入取決於滑塊值,但已經發現,當我使用if語句,只允許一個條件:

<div id="slider"></div> 

<script> 
$('#slider').slider({ 
    orientation: 'horizontal', 
    step: 5, 
    value: 0, 
    animate: true, 
    slide: function(event, ui) { 
     if(ui.value > 50){ 
      updateData("data/commodities3.json") 
     } 
     else if(ui.value > 75){ 
      updateData("data/commodities2.json") 
     } 
    } 
}); 
</script> 

關於如何做到這一點的任何建議將不勝感激。謝謝。

回答

1

你的問題是你如何定義你的條件。顯然,如果你首先捕捉到大於50的所有東西,那麼它就不會經歷檢查其他條件的麻煩。

檢查,對最大數目的第一將解決這個問題:

if (ui.value > 75) { 
    updateData("data/commodities2.json") 
} else if (ui.value > 50) { 
    updateData("data/commodities3.json") 
} 
+0

嗨,感謝您的回覆。我只是試過這個,但在滿足第一個條件之後,滑塊仍然不會移動。 –

+0

你的問題是滑塊不移動或函數updateData不執行? – joelrobichaud

+0

updateData執行,但之後滑塊不會移動。 –

0

如果我理解正確的話,我想你需要重新格式化你的if語句。

正如你現在擁有它,if語句將永遠不會被執行,因爲其他任何值> 75,也> 50

我想你想是這樣的:

if (ui.value > 75) { DO SOMETHING } 
else if (ui.value > 50) { DO SOMETHING ELSE } 
+0

這可以工作,但我可能會有大約10個不同的輸入。因此,如上10,20等 –

+0

如果你有更多值來檢查,使用級聯語句(見我上面的編輯)。只要確保從較高的值開始並逐級降低到較低的值。 – mtaube

+0

感謝您的幫助。我嘗試過這種方式,但在達到滿意的第一個條件後仍然不動。 –

0

@mtaube, @ joelrobichaud,謝謝你的幫助,我設法弄清楚了你的答案!

<slidertitle>Pages</slidertitle> 
     <div id="slider"></div> 


    <script> 
    $('#slider').slider({ 
     orientation: 'horizontal', 
     step: 5, 
     value: 0, 
     animate: false, 
     change: function(event, ui) { 
     if (ui.value > 75) { 
     updateData("data/commodities3.json") 
     } 
      else if(ui.value > 50){ 
      updateData("data/commodities2.json") 
      } 

     } 
    }); 


    </script> 
+0

您能否將標記爲接受的答案?謝謝! – joelrobichaud