设置值和更改事件

滑块提供了一个名为 change 的事件,该事件将在鼠标完成滑块手柄拖动或者以编程方式更改值后触发。此函数包含对幻灯片 event 的引用和对滑块 ui 对象的引用。ui 对象包含要移动的句柄的 jQuery 对象和滑块的值。

一个例子可能是在滑块的值被另一个元素的事件更新后必须显示新信息。让我们使用 select 元素进行演示,当 select 的值发生变化时,以编程方式设置滑块的值:

HTML

<select id="setting">
  <option value="1">Low</option>
  <option value="2">Medium</option>
  <option value="3">High</option>
</select>

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

<div id="display-value"></div>

JavaScript

$(function() {
  $( "#slider" ).slider({
    min: 0,
    max: 11,
    // This will trigger when the value is programmatically changed
    change: function(event, ui) {
        $( "#display-value" ).text(ui.value);
    }
  });
  
  $( "#setting" ).change(function () {
    switch ($(this).val()) {
      case "1":
        $( "#slider" ).slider( "value", 3 );  // Sets the value of a slider programmatically
        break;
      case "2":
        $( "#slider" ).slider( "value", 7 );  // Sets the value of a slider programmatically
        break;
      case "3":
        $( "#slider" ).slider( "value", 11 ); // Sets the value of a slider programmatically
        break;
    }
  });
});

注意: 在这些情况下,slide 事件不会触发,并且需要 change 事件。但是,如果元素需要响应滑块值而在拖动手柄时发生变化,则 slide 事件将是必要的。