gpt4 book ai didi

jQuery slider “change”事件: How do I determine who called it?

转载 作者:行者123 更新时间:2023-12-03 22:35:05 25 4
gpt4 key购买 nike

我有一个 slider ,用作我的音乐播放器中的时间线。最小值为 0,最大值为歌曲长度(以秒为单位)。每一秒(我使用计时器来执行此操作), slider 都会移动并将值设置为当前时间。此代码行如下所示:

$("#sliderTime").slider("option", "value", document.sound.controls.currentPosition);

用户可以滑动/单击 slider 并跳转到歌曲中的另一点,这是通过触发函数“play(startPlayFromHere)”来实现的。看起来像这样:

$("#sliderTime").slider({
...
change: function (event, ui) { play(ui.value) },
});

问题在于计时器中的代码行和用户都调用 slider 的相同“更改”事件,并且用户无法移动 slider 。

所以我的问题是如何确定用户是否调用了更改事件(这意味着它是计时器)?

我希望它足够清楚,谢谢!

最佳答案

您可以通过在更改处理程序中测试 event.originalEvent 来确定更改事件是手动发生还是以编程方式发生。

$('#slider').slider({
change: function(event, ui) {
if (event.originalEvent) {
//manual change
play(ui.value);
}
else {
//programmatic change
}
}
});

参见fiddle .

关于jQuery slider “change”事件: How do I determine who called it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10255041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com