如何以编程方式设置jQuery UI Slider值并触发事件?

Not*_*elf 15 jquery jquery-ui

我有一个像这样定义的滑块:

$("#slider").slider({
        orientation: "vertical",
        range: "min",
        min: 0,
        max: totalRows,
        value: totalRows,
        slide: function(e, ui) {
          scrollTheTable(ui.value, totalRows, visibleRows, $table);
        }
      });
Run Code Online (Sandbox Code Playgroud)

使用滑块时,分配给幻灯片的功能被称为没问题.我有一个表可能包含也可能不包含具有SelectedItem类的行.我正在研究一种方法,它基本上会在页面加载时"滚动"该行到表的顶部.

该方法的内容如下所示:

$("#slider").slider('value', $rows.length - index);
Run Code Online (Sandbox Code Playgroud)

此属性设置滑块值和滑块渲染正确,但我的幻灯片处理程序永远不会被调用来对表进行工作.

我在这里错过了什么?

Not*_*elf 22

看起来幻灯片参数仅对鼠标事件有效.以编程方式设置值时,将触发change事件.所以改变我的设置让我得到了我想要的东西.

  $("#slider").slider({
        orientation: "vertical",
        range: "min",
        min: 0,
        max: totalRows,
        value: totalRows,
        slide: function(e, ui) {
          scrollTheTable(ui.value, totalRows, visibleRows, $table);
        },
        change: function(e, ui) {
          scrollTheTable(ui.value, totalRows, visibleRows, $table);
        }
      });
Run Code Online (Sandbox Code Playgroud)


小智 6

要初始化滑块,上面的方法使用"slide:function(..."和"change:function(")工作完美.但是之后从外部更改滑块,例如通过单击缩略图或任何其他具有"on"的div点击事件"你可以使用:

$("#slider").slider('value', newvalue);
Run Code Online (Sandbox Code Playgroud)

对我来说必不可少的提示是稍微不正确的代码行($ rows?,PHP?):

$("#slider").slider('value', $rows.length - index);
Run Code Online (Sandbox Code Playgroud)