javascript - 为什么关键字“this”在 jQuery removeClass 上不起作用?
问题描述
我可以用来this
从我点击的按钮中获取 id,但我无法选择点击的按钮this
来运行我的 setTimeout 函数。
$(".btn").click(function () {
var userChosenColour = $(this).attr("id");
$(this).addClass("pressed");
setTimeout(function() {$(this).removeClass("pressed");} , 100);
})
但是,我可以通过不使用以下方式运行它this
:
$(".btn").click(function () {
var userChosenColour = $(this).attr("id");
$(this).addClass("pressed");
setTimeout(function() {$("#" + userChosenColour).removeClass("pressed");} , 100);
})
我对关键字有什么误解this
吗?
解决方案
关键字与其他语言有this
很大不同...我推荐this & object原型了解更多。
对于您的问题,一种简单且推荐的解决方案是:
$(".btn").click(function () {
var $this = $(this) // Store the jQuery object and use it everywhere
var userChosenColour = $this.attr("id");
$this.addClass("pressed");
setTimeout(function() {$this.removeClass("pressed");} , 100);
})
推荐阅读
- c# - 使用给出异常的表达式验证方法调用
- java - 有效移动向量内容的算法
- pip - 在 debian9.4 上用于 python3.6.5 的 pip
- docker - 带有 SPNEGO 的 Kerberos 在 docker 容器中不起作用
- node.js - 源自服务器端 NodeJS/Axios/JSDOM 的跨域 HTTP 请求
- sql - 如果字符串是电子邮件格式,我如何从列中提取?
- php - httpd.conf:无法将模块/libphp7.so 加载到服务器:/usr/local/httpd/modules/libphp7.so:无法打开共享对象文件:没有这样的文件或目录
- javascript - 用于预测 Node.js (js) 的人工神经网络库
- python - 如何在张量流中仅使 conv 过滤器中的某些值可训练
- python - np.argsort 文档中的示例