我正在使用this JQuery gauge。
我正在尝试创建某种设置动画,所以即100后300ms显示97,然后200ms后显示110等等。
我希望在输入字段上完全不可取(它会在某一点被抛出),那么我怎样才能使用具有恒定延迟的设定数字数组,其中动画播放速度为基础关于数组中的数字,并在每个数字之后延迟延迟常数(比如说300ms。)
感谢。
我尝试选择元素并应用这样的设置值:$("#myValues").myfunc({divFact:20,eventListenerType:'keyup'}).val(100)
,但它只是将数字放在那里没有结果,它使用eventListenerType:'keyup'
而我的val函数是def。在100之后不发送密钥。
答案 0 :(得分:1)
有两个问题,
val()
方法更改值。val()
方法不会触发您需要以编程方式触发的keyup
事件。您可以添加code for returning the object reference,也可以这样做。
var $ele = $("#myValues"); // cache the reference
$ele.myfunc({divFact:20,eventListenerType:'keyup'}); // initialize plugin
$ele.val(100).keyup(); // change value and trigger the event
<强> Working Example 强>
答案 1 :(得分:1)
您可以迭代数组并根据索引中的值设置输入字段的值:
$("#myValues").myfunc({
divFact: 10
});
var time = 0;
$.each([ 100, 90, 80, 70 ], function( index, value ) {
setTimeout( function(){ $("#myValues").val(value).change(); }, time)
time += 1000;
});
要延迟每次迭代,您可以使用setTimeout
- 函数包围值的setter。
我删除了keyUp
事件,因为该插件具有您可以使用的eventListenerType
的默认值,但必须触发此事件。
将time
的初始值设置为您希望延迟第一次迭代时所需的任何值。
<强> Example 强>
答案 2 :(得分:-1)
我已经改变了你的jsfiddle中的两件事:
speed
参数。 this
。还有一些其他可能的小改进。查看我的jsfiddle
编辑:我是这样做的,因为你想从中获取输入字段。就是这样。