Javascript jQuery滑块调用另一个函数

Javascript jQuery滑块调用另一个函数,javascript,jquery,Javascript,Jquery,我是一个有点jQuery滑块的新手,所以请容忍我 我想调用我的updateData(input)函数,根据滑块值的不同,使用不同的输入,但发现当我使用if语句时,它只允许一个条件: <div id="slider"></div> <script> $('#slider').slider({ orientation: 'horizontal', step: 5, value: 0, animate: true, slid

我是一个有点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>

$(“#滑块”)。滑块({
方向:“水平”,
步骤:5,
值:0,
动画:对,
幻灯片:功能(事件、用户界面){
如果(ui.value>50){
updateData(“数据/商品3.json”)
}
否则如果(ui.value>75){
updateData(“数据/商品2.json”)
}
}
});

任何关于如何实现这一点的建议都将不胜感激。谢谢。

您的问题在于如何定义您的条件。显然,如果您首先捕获所有高于50的对象,那么它就不会遇到检查else条件的麻烦

首先检查最大的数字可以解决此问题:

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

如果我理解正确,我认为您需要重新格式化If语句

正如您目前所拥有的,else-if语句将永远不会执行,因为任何大于75的值也都大于50

我想你想要这样的东西:

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

@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>
页面
$(“#滑块”)。滑块({
方向:“水平”,
步骤:5,
值:0,
动画:假,
更改:功能(事件、用户界面){
如果(ui.value>75){
updateData(“数据/商品3.json”)
}
否则如果(ui.value>50){
updateData(“数据/商品2.json”)
}
}
});

您好,谢谢您的回复。我刚试过,但滑块在满足第一个条件后仍然不会移动。您的问题是滑块不移动或函数updateData不执行?updateData执行,但之后滑块不会移动。您可以使用updateData函数中的代码编辑您的问题吗?也许它会以某种方式影响滑块的行为。这可能会起作用,但我可能会有大约10种不同的输入。所以在10、20等以上。如果您有更多的值要检查,请使用级联语句(参见上面的编辑)。只需确保从较高的值开始,然后级联到较低的值。谢谢您的帮助。我试过了,但在达到它满足的第一个条件后,它仍然无法移动。@TomWhitaker我想你应该调用slider.slider(“value”,value);方法在updateData函数中?Hi@mtaube,updateData()函数是用D3编写的,这可能会使调用滑块产生问题。当我问这个问题时,我想知道是否有某种参数在调用函数后必须重置,以允许滑块再次移动。。