gpt4 book ai didi

javascript - 检查动画函数中的元素相等性

转载 作者:行者123 更新时间:2023-11-30 09:06:36 25 4
gpt4 key购买 nike

我有以下代码,并希望在 fadeTo 函数的第一次传递中打印“yes”,因为前两个控制台日志告诉我它是相同的元素。但它不承认他们是平等的。我在这里想念什么?

var tds = self.element.find("td:nth-child(" + (columnIndex + 1) + ")");
tds.fadeTo(options.columnFadeOutTime, 0, function() {
window.console.log(tds.first());
window.console.log($(this));
if ($(this) == tds.first()) {
window.console.log("yes");
}
else {
window.console.log("no");
}
}

最佳答案

您正在比较 2 个 jQuery 对象,它们 不同,而不是它们引用的 DOM 元素,就像这样:

var tds = self.element.find("td:nth-child(" + (columnIndex + 1) + ")");
tds.fadeTo(options.columnFadeOutTime, 0, function() {
window.console.log(this == tds[0] ? "yes" : "no");
});

请注意,这里根本没有理由将 this 转换为 jQuery 对象。此外,由于您只是在调试,您可以只使用 window.console.log(this == tds[0]); 这会给您 truefalse 在控制台中。

另一种方法,如果你想 .queue()仅在第一次完成时运行的东西(这是你似乎想要的):

var tds = self.element.find("td:nth-child(" + (columnIndex + 1) + ")");
tds.fadeTo(options.columnFadeOutTime, 0).first().queue(function(n) {
//do something
n();
});

关于javascript - 检查动画函数中的元素相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4624690/

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