Javascript 为什么notify不想在我的延迟示例中工作?
我刚刚开始学习jquery。在我到达通知区之前,一切都很顺利。你会看到我的代码中有一部分被注释掉了,我认为我可以使用notify,但不能使用Javascript 为什么notify不想在我的延迟示例中工作?,javascript,jquery,deferred,Javascript,Jquery,Deferred,我刚刚开始学习jquery。在我到达通知区之前,一切都很顺利。你会看到我的代码中有一部分被注释掉了,我认为我可以使用notify,但不能使用 var obj = {}; $('div').each(function(i){ $(this).fadeIn().fadeOut(1000 * (i + 1),function(){ console.log(i + " has fade out"); }); // I thought this would work but .not
var obj = {};
$('div').each(function(i){
$(this).fadeIn().fadeOut(1000 * (i + 1),function(){
console.log(i + " has fade out");
});
// I thought this would work but .notify is not a function?
$('div').notify(i);
});
$('p').each(function(i){
$(this).fadeIn().fadeOut(1000 * (i + 1),function(){
console.log(i + " has fade out");
});
});
$('div').promise(obj).done(function(){
console.log("done");
}).progress(function(value){
console.log(value);
});
obj.done(function(){
console.log("obj done method called");
});
obj.fail(function(err){
console.log(err);
});
obj.always(function(){
console.log("obj always method called");
});
$('div').promise().then(
function(result){
console.log(result);
result.each(function(){
$(this).fadeIn()
});
//$(result[0]).fadeIn();
},
function(error){ },
function(value){ }
);
$.when($('div'),$('p')).done(function(a,b){
console.log("all done with both");
});
.notify()
方法只能应用于延迟的
对象$('div')
返回jQuery集合,而不是延迟对象。使用.promise()
获得一个延迟的对象,该对象在选定元素的所有动画完成后解析。另外,在.each()
循环中,您应该只调用当前元素的.notify()
,而不是调用所有div
元素
因此,它应该是:
$(this).promise().notify(i);
当你说它不起作用的时候。什么意思?您收到一个错误或它不能按预期工作?。notify()
是一个延迟的对象的方法$('div')
返回一个jQuery
对象,而不是延迟的
对象。另外,它似乎在jQuery版本3.X$(this.promise().notify(i)中删除了notify代码>也不起作用,因为.notify()
,像.resolve()
和`.reject(),是一种延迟方法,而不是Promise方法。我以为它们是一样的,现在我看到Promise
是延迟
的子集。你可以从延期付款中得到承诺,但反过来不行。