我正在重写我的setInterval任务,这样当我使用Underscore.js clearInterval跳转到我的站点上的不同标签时,我就不再需要去Underscore.js了。
我一直收到错误_.debounce is not a function。
下面是我的原始工作代码。基本上,当标签为“pano”时,我会运行此函数,每隔50ms更改一次相机角度。当我重新点击“pano”标签时,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, _){发布于 2012-10-24 04:55:57
您需要的语法不正确。模块按照它们在第一个数组中列出的顺序作为参数传递给您的函数。所以它应该看起来像这样:
require([
"require",
"jquery",
"underscore",
"lib/jquery/jquery.galleria",
"gmaps!",
"//assets.pinterest.com/js/pinit.js",
"twitter_bootstrap/bootstrap-dropdown"
], function(require, $, _, galleria, ...){
/* .... */
});尽管如此,您不应该要求需要本身。
https://stackoverflow.com/questions/13038657
复制相似问题