{ $(".tabs-item").removeClass("active");-6ren">
gpt4 book ai didi

javascript - $(this) 在定义的点击事件中不起作用

转载 作者:行者123 更新时间:2023-11-28 14:44:41 25 4
gpt4 key购买 nike

$(document).ready(() => {
$(".tabs-item").click(() => {
$(".tabs-item").removeClass("active");
$(this).addClass("active"); //This line is not at all working..
});
});

$(this) 根本不起作用。我一直在尝试不同的方法。喜欢

$("tabs-item").click(() => {
var x = $(this).attr("tab-data");
console.log(x);
});

对于我尝试过的每个属性,我所得到的都是未定义的。

最佳答案

箭头函数保留外部上下文 - this 指的是定义箭头函数的上下文。将箭头函数替换为函数声明,让 jQuery 为函数绑定(bind)适当的上下文。

$("tabs-item").click(function(){
var x = $(this).attr("tab-data");
console.log(x);
});

或者使用箭头函数可以获取参数中的event参数并访问它的currentTarget属性。

$("tabs-item").click((event) => {
var x = $(event.currentTarget).attr("tab-data");
console.log(x);
});

函数声明方法更可取,因为没有为事件处理程序提供箭头函数。只需使用函数声明,它的上下文就会绑定(bind)到适当的函数。

关于javascript - $(this) 在定义的点击事件中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46813525/

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