我试图让一个字段在悬停时聚焦,但仅在 3 秒延迟之后。显然我做错了:
var timer;
function focusTimer() {
timer = setTimeout(function () {
$('#input').focus(),
3000;
})
}
$('#input').hover(function () {
if (timer) {
clearTimeout(timer);
}
focusTimer();
});
#input:focus {
width: 500px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="input">
最佳答案
你做错了。
您将 3000 放在函数中。把它移到外面
timer = setTimeout(function () {
$('#input').focus(),
3000;
^^^^^^^
})
应该是
timer = setTimeout(function () {
$('#input').focus();
},3000);
片段
var timer;
function focusTimer() {
timer = setTimeout(function () {
$('#input').focus();
},3000)
}
$('#input').hover(function () {
if (timer) {
clearTimeout(timer);
}
focusTimer();
});
#input:focus {
width: 500px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="input">
关于javascript - 在延迟后使用 jQuery 将字段聚焦在悬停上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45810006/