Interval的Javascript事件监听器

时间:2015-03-11 01:57:38

标签: javascript intervals event-listener

我正在使用ondevicemotion API在设备上侦听运动数据。例如:

window.ondevicemotion = function(event) {
    // do something with the event
}

我想在调用它时运行此函数;但是,因为它基于事件,所以它会在事件发生时触发(取决于设备,可能经常发生)。

如何调整功能以便它只在我调用时监听事件,而不是连续监听?

1 个答案:

答案 0 :(得分:0)

您可以根据需要添加和删除事件侦听器:

function processMotion(e) {
   // your code here to process devicemotion events
}

function addMotionListener() {
    window.addEventListener("devicemotion", processMotion);
}

function removeMotionLisener() {
    window.removeEventListener("devicemotion", processMotion);
}

因此,当您想要开始收听动作时,只需致电addMotionListener()即可。如果您想停止听动作,请拨打removeMotionListener()


您无法自己调用processMotion(),因为您需要系统创建包含其中所有运动数据的系统事件。相反,您注册事件处理程序,系统会在需要共享数据时调用您。