将var从一个扩展函数传递到另一个
问题描述:
我无法通过$.PhotoUpdater.doUpdate(url)
的URL来执行doUpdate
函数。将var从一个扩展函数传递到另一个
火狐返回此错误:
useless setTimeout call (missing quotes around argument?)
[Break on this error] timer = setTimeout($.PhotoUpdater.doUpdate(url), 5000)
我的代码:
$.extend({
PhotoUpdater: {
startUpdate: function(organization, gallery){
url = "/organizations/" + organization + "/media/galleries/" + gallery + "/edit_photo_captions"
timer = setTimeout($.PhotoUpdater.doUpdate(url), 5000)
},
stopUpdate: function(){
clearTimeout(timer);
timer = 0;
},
doUpdate: function(url){
$.ajax({type: "GET", url: url, dataType: "script"});
}
}
});
我怎么称呼它:
$.PhotoUpdater.startUpdate("#{@organization.id}", "#{@gallery.id}");
答
你需要一个函数传递到window.setTimeout
,不是调用函数的结果:
startUpdate: function(organization, gallery){
url = "/organizations/" + organization + "/media/galleries/" + gallery + "/edit_photo_captions";
timer = window.setTimeout(function() {
$.PhotoUpdater.doUpdate(url)
}, 5000);
},