我试图在徘徊时使场地聚焦,但仅在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">
&#13;
答案 0 :(得分:4)
你做错了。
您将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();
});
&#13;
#input:focus {
width: 500px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="input">
&#13;
答案 1 :(得分:2)
使用转换延迟:
#input {
-webkit-transition-delay: 5s;
transition:width 5s;
transition-delay:5s;
width:100px;
}
#input:focus {
width:200px;
}
将鼠标悬停在输入上:
#input:hover {
width:200px;
}
答案 2 :(得分:2)
var timer;
function focusTimer() {
timer = setTimeout(function () { //change your setTimeout like this
$('#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">
答案 3 :(得分:1)
$("#i").hover(function() {
setTimeout(function() {
$("#i").focus();
}, 1000);
})
#i {
width:300px;
transition:width 1s;
#i:focus {
width: 500px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="i">