javascript - 根据 jquery UI slider 的值显示/隐藏 div

标签 javascript jquery jquery-ui

我正在使用 jQuery UI slider ,并尝试在 slider 达到某个值时显示 div,否则隐藏它。 div 正在显示/隐藏,但在意想不到的时刻。有人能发现我的语法哪里出了问题吗?这是脚本:

  $(function() {

    //vars
    var conveyor = $(".content-conveyor", $("#sliderContent")),
    item = $(".item", $("#sliderContent"));

    //set length of conveyor
    conveyor.css("width", item.length * parseInt(item.css("width")));

    //config
    var sliderOpts = {
      max: (item.length * parseInt(item.css("width"))) - parseInt($(".viewer", $("#sliderContent")).css("width")),orientation: "vertical",range: "min",step: 304,
      slide: function(e, ui) { 
        conveyor.css("left", "-" + ui.value + "px");
        $("#amount").val('$' + ui.value);

        // here's where I'm trying to show and hide a div based on the value of the slider
        if ($("#slider").slider("value") == 304) {
        $("#test").show();
        } else  {
         $("#test").hide();    
        }
      }
    };

    //create slider
    $("#slider").slider(sliderOpts);
    $("#amount").val('$' + $("#slider").slider("value"));

  });

最佳答案

我最近为一个项目做了这个,但我的项目显示了一个跨度标签作为对用户的警告注释,以下是我使用的代码,它工作正常:

            $("#slider").slider({
                animate: true,
                min: 0,
                max: 10000,
                range: true,
                slide: function(event, ui) {
                    $("#amount").val(ui.values[1]);
                    if (ui.values[1] > '2000') { //2000 is the amount where you want the event to trigger
                        $('.slider-warning').css('display', 'block');
                    } else {
                        $('.slider-warning').css('display', 'none');
                    }
                }
            });

所以你应该能够只使用它,但更改必要的属性,即值和选择器等。

编辑 - 更新后的答案如下

明白了,ui.values 是错误的,请在下面找到更正后的代码

var sliderOpts = {
          max: (item.length * parseInt(item.css("width"))) - parseInt($(".viewer", $("#sliderContent")).css("width")),
          orientation: "vertical",
          range: "min",
          step: 304,
          slide: function(event, ui) {
              conveyor.css("left", "-" + ui.value + "px");
              $("#amount").val('$' + ui.value);
              if (ui.value > '200') { //200 is the amount where you want the event to trigger
                  $('#test').css('display', 'block');
              } else {
                  $('#test').css('display', 'none');
              }
          }
        };

这是直接取自您的代码,另请注意:

if (ui.value > '200')

您需要将其更改为您希望触发事件的方式。

希望这有帮助:)

关于javascript - 根据 jquery UI slider 的值显示/隐藏 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1425913/

相关文章:

javascript - 按键时获取值错误

javascript - 导出并在另一个js文件中重用一个js文件的重载函数

javascript - 在应用了另一个 jquery 函数的 div 中调用时,一个 jquery 函数不起作用

javascript/jquery 将数组转换为字符串,在每个字符串之前添加一些内容

javascript - 所有单选按钮均已选中?

javascript - 使用 jQuery/Javascript 打开“保存图像”对话框?

javascript - Javascript 中的 Minimax 无法正常工作

javascript - 取消重置由外部样式表定义的样式

javascript - 如何使用 JavaScript 或 jQuery 实现搜索功能

jQuery UI Slider - 需要记住浏览器上的值 "Back"