Rob*_*nik 3 jquery events jquery-ui slider jquery-ui-slider
如果我们将click
事件绑定到链接为
$("linkSelector").click(function(){ ... });
Run Code Online (Sandbox Code Playgroud)
那么即使用户没有点击链接,我们也可以轻松强制执行此事件处理程序.
$("linkSelector").click(function() { ... }).click();
Run Code Online (Sandbox Code Playgroud)
但在我的情况下,我正在使用jQuery Slider小部件,它具有slide
可以绑定事件处理程序的事件.我想知道我们如何以编程方式强制执行其事件?
我试过跟随,但没有一个有效:
$("sliderSelector").slider({ slide: function(){ ... } }).slide();
$("sliderSelector").slider({ slide: function(){ ... } }).slider("slide");
$("sliderSelector").slider({ slide: function(){ ... } }).trigger("slide");
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用命名函数而不是匿名函数,但我不认为这是一个解决方案,因为我可以使用我想要的任何参数调用函数,而触发slide
事件将提供滑块设置的正确值.
这是实际触发此类事件处理程序的结果代码:
var s = $("sliderSelector").slider({ slide: function(evt, ui){ ... } });
s.slider("option", "slide").call(s, null, { values: s.slider("values") });
Run Code Online (Sandbox Code Playgroud)
确保提供实际在事件处理程序中使用的函数参数.在我使用范围滑块的情况下,我需要ui.values
参数,所以我创建了这样一个对象,所以我的处理程序不会破坏.
这不是一个很好的解决方案,因为我必须.slider()
多次调用函数,但它是防止使用魔法值的最安全的方法.