单击滑块轨道时获取 Jquery-UI 滑块值?

Posted

技术标签:

【中文标题】单击滑块轨道时获取 Jquery-UI 滑块值?【英文标题】:Getting Jquery-UI slider value while clicking on slider-track? 【发布时间】:2020-02-12 04:44:57 【问题描述】:

我试图在单击滑块轨道时获取 jquery-ui 滑块的值。但我无法获得滑块的值。我能够在幻灯片上获得价值,但我无法在点击时获得它。

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

  var handlers = [25, 50, 75];

  $('#slider').on('click',function(e) 
    //code to get the value
  );

  /*While sliding I'm getting the value*/
   $("#slider").slider(
        min:0,
        max:100,
        steps:20,
        values: handlers,
        slide: function (evt, ui) 
         console.log(ui.values);
        
    );

【问题讨论】:

【参考方案1】:

欢迎来到 Stack Overflow。 jQuery UI Slider 添加了许多元素,您必须减少歧义。如果您查看渲染的DIV#slider,您会发现它的高度基本上为0。所以当用户点击手柄或栏时,点击事件可能不会冒泡到#slider元素。

考虑以下代码:

$(function() 
  function log(str) 
    $("#log").prepend("<p>" + str + "</p>");
  
  var handlers = [25, 50, 75];

  /*While sliding I'm getting the value*/
  $("#slider").slider(
    min: 0,
    max: 100,
    steps: 20,
    values: handlers,
    slide: function(evt, ui) 
      log("Slide: " + ui.values.join(","));
      $(".ui-slider-handle", this).each(function(i, el) 
        $(el).html(ui.values[i]);
      );
    
  ).on("click", ".ui-slider-handle", function(e) 
    log("Click: " + $(e.target).parent().slider("values").join(","));
  );
);
#log 
  width: 100%;
  height: 7em;
  font-size: 65%;
  overflow: auto;
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<div class="content">
  <div id="slider" class="ui-helper-clearfix"></div>
</div>
<div id="log" class="ui-widget"></div>

在日志中,您可以看到 ClickSlide 活动。如果您想更具体地了解何时触发回调,您可以考虑使用mousedownmouseup 事件。

【讨论】:

当用户试图点击滑块轨道时,滑块手柄不应该是可移动的,但我需要知道点击的值是在轨道上而不移动手柄 @RajendraPrasad 如果手柄不应该移动,那么 Slider 可能不是最好的小部件。如果您希望每个滑块句柄的值出现在句柄中,那将是一个不同的函数。请澄清。 是否有任何选项可以使用此滑块小部件实现该功能?

以上是关于单击滑块轨道时获取 Jquery-UI 滑块值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在自定义 UISlider 中在滑块值 0 之前和滑块值 100 之后提供填充

SwiftUI 滑块值不尊重范围

如何在 jquery mobile 中获取释放点击事件的滑块值?

滑块更新选择值现在获取选择值来更新滑块值?

更改 jQuery UI 滑块值选项时动画滑块句柄?

mousemoved 事件中的 Javafx 滑块值