试图将一个值动态传递给输入元素
我正在使用this JQuery gauge。试图将一个值动态传递给输入元素
我试图建立某种形式的集动画,所以即显示97 100,然后300毫秒后,再经过200毫秒显示110等
我想是该输入场完全不可靠的(它会被抛出一点),那么我怎样才能够使用一个固定延迟的数组,并且动画根据数组中的数字播放速度,并在延迟常数后延迟每个数字(让我们说300ms)。
谢谢。
我试过选择元素并应用如下设置值:$("#myValues").myfunc({divFact:20,eventListenerType:'keyup'}).val(100)
,但它只是在那里放置数字而没有结果,它使用的是eventListenerType:'keyup'
,我的val函数是def。的100
可以遍历数组,并设置不同的指标值的输入字段的值:
$("#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
设置为您想要延迟第一次迭代时所需的任何值。
多么美妙的答案,谢谢。 – clusterBuddy
后不发送KEYUP有2个问题,
- 不返回在插件代码的对象引用,以便可以不使用改变值插件
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
我已经在你的jsfiddle改变两两件事:
- 我加了
speed
参数的changePosition方法。 - 我在对象初始值设定项的末尾返回
this
。
其他一些可能的小改进。看我的jsfiddle
编辑:我这样做是因为你想从中获取输入字段。这是方式。
https://jsfiddle.net/pranavcbalan/nLLbus47/1/ –