javascript - 点击后 3 秒后再次自动点击
问题描述
点击后 3 秒后再次自动点击。为什么不工作?
$(document).on("click", "input[name='submit']", setTimeout(function(){
$(this).trigger('click');
}, 3000));
解决方案
我发现您的代码有两个问题:
首先,您将 setTimeout 放入回调中。setTimeout 为其生成的计时器返回一个 int id。所以基本上你现在拥有的是:
.on('click', selector, 123);
这显然行不通。
如果您希望您的代码稍后执行,请将 setTimeout放在回调中。
.on('click', selector, function() {
setTimeout(myFunc, 3000);
});
然后你的回调在点击时运行,并产生计时器。
其次,我假设您希望this
在回调内部引用单击的对象,而不是window
.. 所以您必须将 thisArg 传递给 setTimeout 或在父范围中定义它.. 或使用不绑定的箭头函数一个新的 thisArg。为简单起见,我建议使用箭头函数。
setTimeout( () => {
$(this).trigger('click');
}, 3000);
推荐阅读
- mysql - SQL:如何从同一个表中选择两个日期之间的最大出现次数
- c# - 由于产生时间成本,禁用 EF Core 3.1 的模型验证
- persistence - 是否可以在 Google Colaboratory 上运行桌面应用程序?
- r - Sys.getenv 找不到环境变量
- string - MATLAB:如何根据重复数字划分字符串
- python - 使用递归删除列表元素
- c - 从列表中接受用户的部分字符串输入
- javascript - facebook Share Dialog (iframe) 的一部分不可见,我无法移动它
- java - 为什么spring data jpa-java.lang.IllegalStateException:OneToMany关系中同一实体的多个表示?
- python - 你能从python中的项目名称的列表中找到一个项目吗?