gpt4 book ai didi

javascript - 拖动事件期间每 x 毫秒触发一次回调(HTML5、Ember)

转载 作者:行者123 更新时间:2023-12-02 18:14:06 24 4
gpt4 key购买 nike

我有一个 Mixin:

DragEvents = Ember.Mixin.create( {
attributeBindings: 'draggable',
draggable: 'true',
dragStart: function(event) {
controller.onDragStartEvent(this);
},
drag: function(event) {
// this is called for each 'movement' of the object being dragged
// want to collect information about the events and fire a callback
// once every 100 ms
},
dragEnd: function(event) {
// want to fire one last callback with the remaining drag event coordinates
}
});

在拖动函数中,我对鼠标的坐标感兴趣,该坐标由下式给出

event.originalEvent.pageX, event.originalEvent.pageY

我不明白的是如何在每次调用拖动时收集该信息,并在拖动期间每 100 毫秒触发一次回调,参数是我收集的坐标数组。当调用 DragEnd 函数时,我想用剩余的拖动事件(收集但尚未在先前的回调中发送的事件)触发回调。

回调是

controller.onDragEvent(coordinatesArray);

最佳答案

Ember 奔跑有自己的节奏

http://emberjs.com/api/classes/Ember.run.html#method_throttle

确保目标方法的调用频率永远不会超过指定的间隔时间。

在你的情况下,代码是

Ember.run.throttle(controller, 'onDragEvent',coordinatesArray, 100);

祝你好运

关于javascript - 拖动事件期间每 x 毫秒触发一次回调(HTML5、Ember),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19452455/

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