Czy mogę używać jquery done()
w "nie-ajaxowych" funkcjach. Otrzymuję komunikat o błędzie Uncaught TypeError: Cannot call method 'done' of undefined
, gdy próbuję zrobić coś takiego.Użyj jquery wykonanej na "nie-ajaxowej" funkcji
function countThreeSeconds() {
var counter = 0,
timer = setInterval(function() {
if (counter == 3) {
console.log("All done. That was three seconds.");
window.clearInterval(timer);
} else {
console.log("Not there yet. Counter at: " + counter);
}
counter++;
}, 1000);
}
(function(){
var timer = countThreeSeconds().done(function(){
alert("done");
});
}());
Dzięki
Jak widać, nie można. jQuery nie ma z tym nic wspólnego. Nigdy nie można wywołać metody na "niezdefiniowanym". Metody jQuery nie magicznie pojawiają się wszędzie * (dzięki Bogu) *. Możesz wywoływać je na określonych obiektach zdefiniowanych w bibliotece jQuery i zgodnie z opisem interfejsu API jQuery. –