setTimeout函数中的关键字,该函数嵌套在on()方法下.但这并没有奏效
This keyword inside a setTimeout function, which is nested under a on() method. And it is not working
$("ul").on("click", ".start", function() {
console.log("started");
var timeInput = $(this).parent().children('.time');
var timeInputValue = timeInput.val();
var milliSeconds = Number(timeInputValue)*60*1000;
console.log(milliSeconds);
setTimeout(function(){
alert("Time Over");
$(this).parent().children('.task').toggleClass("completed");
}
, milliSeconds);
})
....................................................................
<ul>
<li><span class="delete">X</span> <span class="start">S</span> <span class="task">Code ToDo</span></li>
<li><span class="delete">X</span> <span class="start">S</span> <span class="task">Read two books</span></li>
<li><span class="delete">X</span> <span class="start">S</span> <span class="task">Run</span></li>
</ul>
我知道我在setTimeout函数中错误地使用了this
关键字,但我想访问类.task
对应于start
的元素。
我该怎么做?
alert方法可以工作,但是toggleClass不能工作
你可以用arrow function
来做,
setTimeout(() => {
alert("Time Over");
$(this).parent().children('.task').toggleClass("completed");
}, milliSeconds);
如果你在ES5中编写代码,那么使用setTimeout
的第三个参数
setTimeout(function(_this){
alert("Time Over");
$(_this).parent().children('.task').toggleClass("completed");
}, milliSeconds, this);
相关文章:
- 如何确保函数/方法参数为certian类型
- Javascript中对象中的函数方法
- Object.assign(),函数方法和内存使用
- 我应该在原型上还是在新创建的实例上调用构造函数方法
- Angular promise回调不是在构造函数方法内部触发,而是在对象文本方法中触发
- 如何使用 Karma、Jasmine 和 Istanbul 指定测试应涵盖哪些函数/方法
- 在ES2015中定义一个类,构造函数方法是什么以及为什么它是必不可少的
- 如何调用通过它传递不同 ID 的函数方法
- Sencha ExtJs 为什么从“构造函数”方法返回“this”
- 这个 JavaScript 函数方法调用了什么
- 如何在 javascript 中从子原型调用父类的构造函数方法
- 是否仍可访问被覆盖的函数/方法
- 在构造函数之外更改 JavaScript 中的构造函数方法
- 这种实例化构造函数方法的风格是什么
- 如何在 JavaScript 中使用继承与构造函数方法一起使用 返回具有私有属性的对象文本
- 我的javascript构造函数方法以文本形式返回整个方法,而不是预期的返回值
- 如何在事件中将变量传递给构造函数方法
- 如何限制用户在ui ace编辑器中只能编写一个javascript函数(方法)
- 打印任何java应用程序的函数/方法调用序列
- 如何在jQuery语句中使用Javascript构造函数方法