gpt4 book ai didi

jquery - 如何选择性地解析和拒绝 jquery 对象

转载 作者:行者123 更新时间:2023-12-01 05:48:48 25 4
gpt4 key购买 nike

是否可以解析 jquery 延迟对象,然后拒绝它,然后再次解析它,等等。并在每次解析时触发 $.when ?

我正在尝试这个,但它不起作用:

var bindHide = $.Deferred();
var bindShow = $.Deferred();
if ($('#userdata').is(':hidden')) {
bindShow.resolve();
} else {
bindHide.resolve();
}
//SHOW USERDATA
$.when(bindShow).then(function() {
bindShow.reject();
$('#miniWeightLevel, #miniWeightLevelTextLayer').unbind('vclick').bind('vclick', function (e) {
showUserdata();
$('#miniWeightLevel, #miniWeightLevelTextLayer').unbind('vclick');
bindHide.resolve();
});
});
//HIDE USERDATA
$.when(bindHide).then(function() {
bindHide.reject();
$('#minifyCross').unbind('vclick').bind('vclick', function (e) {
hideUserdata();
bindShow.resolve();
});
});

最佳答案

给定的延期只能被拒绝或解决一次。而且,由于 $.when() 也返回一个 Promise,因此它也只会被拒绝或解决一次。所以,不,它不能像你要求的那样工作。

标准 deferreds 和 Promise 并非设计为通用通知系统,这就是您尝试使用它们的方式。 jQuery 的实现有一个通知功能,您可以使用它来实现此目的,但标准工作正在使该功能脱离 promise ,并且将以不同的方式完成。

对我来说,这更像是您只需要一个通知系统或自定义事件,而不是设计为单向的 promise 。它们被解决或拒绝一次,然后就不会再改变。

关于jquery - 如何选择性地解析和拒绝 jquery 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24289897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com