首页 > 解决方案 > Jquery UI 最初隐藏滑块句柄

问题描述

我已经用 jquery ui 设置了一个滑块。我希望滑块的句柄最初是隐藏的,并且仅在用户单击滑块后才显示出来。我设法通过在 ui-slider-handle 类中将 display 设置为 none 来隐藏句柄。但是,我以后无法将其更改回来。

标签: jquery-uijquery-ui-slider

解决方案


考虑以下基于https://api.jqueryui.com/slider/示例的代码片段。

$(function() {
  $("#slider").slider({
    start: function() {
      $(".ui-slider-handle", this).show();
    }
  });
  var sw = $("#slider").slider("widget");
  $(".ui-slider-handle", sw).hide();
});
<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 id="slider"></div>

是的,你可以用 CSS 隐藏句柄,让它再次出现就意味着用元素样式覆盖 CSS:

$(".ui-slider-handle").css("display", "block");

上面的例子更具体一些,但本质上是做同样的事情。初始化 Slider 后,您可以调用该widget方法来访问各种元素。我们可以.hide()在手柄上使用。当用户点击滑块时,这会触发start事件,我们可以.show()在那个时候进行处理。

如果您有多个滑块,则ui-slider-handle该类可能过于模糊,因此使用选择器上下文会有所帮助。

在内部,选择器上下文是用.find()方法实现的,所以$( "span", this )等价于$( this ).find( "span" ).

看更多:


推荐阅读