我正在重写我的 setInterval 任务,这样当我使用 Underscore.js debounce 跳转到我网站上的不同选项卡时,我不再需要 clearInterval。
我不断收到错误_.debounce is not a function
。
这是我下面的原始工作代码。基本上,当标签为“PANO”时,我运行此功能,每50ms更改相机角度。当我重新单击“全景”选项卡时,clearInterval 会重置计时器。
clearInterval(timerID);
if (target == 'pano') {
initialize();
timerID = setInterval(function(){
if (!hovering && !moved) {
panoOptions.pov.heading += .5;
panoOptions.pov.heading = wrapAngle(panoOptions.pov.heading);
panorama.setOptions(panoOptions);
}
},50);
initialize();
}
当我尝试重构我的代码以使用._debounce
(http://underscorejs.org/#debounce) 时,我得到一个错误,如果我的方法是正确的,我不会。
timerID = _.debounce(function(){
if (!hovering && !moved) {
panoOptions.pov.heading += .5;
panoOptions.pov.heading = wrapAngle(panoOptions.pov.heading);
panorama.setOptions(panoOptions);
}
},50);
$("#pano_toggle").click(
function(){
console.log("CLICKED");
timerID();
}
);
我基本上设置了一个单击侦听器,以便当用户单击按钮时,去抖动功能开始运行。我还添加console.log("CLICKED")
了查看我的点击侦听器是否正常工作,但它没有收到点击。
关于我的逻辑在哪里失败的任何提示?
编辑:
我确保需要 Underscore.js:
require(["require",
"jquery",
"underscore",
"lib/jquery/jquery.galleria",
"gmaps!",
"//assets.pinterest.com/js/pinit.js",
"twitter_bootstrap/bootstrap-dropdown"], function(require, _){