2014-01-09 78 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