2010-09-30 3 views
0

У меня возникли проблемы с передачей кода $.PhotoUpdater.doUpdate(url), чтобы сделать функцию doUpdate.Передача var из одной расширенной функции в другую

Firefox возвращает эту ошибку:

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}"); 

ответ

3

Вам нужно передать функцию в window.setTimeout, а не результат вызова функции:

startUpdate: function(organization, gallery){ 
    url = "/organizations/" + organization + "/media/galleries/" + gallery + "/edit_photo_captions"; 
    timer = window.setTimeout(function() { 
     $.PhotoUpdater.doUpdate(url) 
    }, 5000); 
}, 
Смежные вопросы