gpt4 book ai didi

javascript - setTimeout() 不适用于 jQuery(this)

转载 作者:行者123 更新时间:2023-11-28 12:19:16 25 4
gpt4 key购买 nike

我这里有这段脚本,我想在其中向上滑动我的 ul 元素,然后在执行向上滑动后,我想出于 CSS 原因删除“open”类。我做错了什么?

jQuery(this).parent().children("ul").slideUp(500);
setTimeout(function(){
var elementToRemove = jQuery(this).parent();
elementToRemove.removeClass("open");
}, 500);

最佳答案

this 在回调函数中指的是全局对象,而不是事件目标。

两种解决方案:

使用箭头函数(保留 this 上下文):

jQuery(this).parent().children("ul").slideUp(500);
setTimeout(() => {
var elementToRemove = jQuery(this).parent();
elementToRemove.removeClass("open");
}, 500);

或者保存指向 this 对象的链接:

jQuery(this).parent().children("ul").slideUp(500);
let that = this;
setTimeout(function(){
var elementToRemove = jQuery(that).parent();
elementToRemove.removeClass("open");
}, 500);

关于javascript - setTimeout() 不适用于 jQuery(this),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42051296/

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