我制作了一个<p>
带有按钮的列表()。当我将鼠标移到它们上面时,会延迟 1.2 秒,然后我的文本框会被标记为黄色以显示我可以在哪里书写。当我将鼠标移开时,它们变为正常(白色)。
我的问题是,当我快速将鼠标悬停在按钮上时,很多文本框都会被标记。我曾希望 1,2 秒的延迟会起作用,但事实并非如此。但是,如果我将鼠标缓慢地移入和移出按钮,它就会起作用。
这是一个小提琴:http: //jsfiddle.net/Pota/Fj6E6/
这是我的 JavaScript 代码
$(function () {
$("p.pRespRoleId").mouseenter(function () {
var timeOut = 1200;
$this = $(this);
$this.data("delay", setTimeout(function () {
mouseInRespRoleId();
}, timeOut)
);
})
.mouseleave(function () {
$this = $(this);
if ($this.next(mouseOutRespRoleId()).is(":visible")) {
clearTimeout($this.data("delay"));
mouseOutRespRoleId();
}
else {
$this.next("p.pRespRoleId").show();
}
});
});
和
function mouseInRespRole()
{
var txtInRespRole = document.getElementById("<%=txtRespRoleName.ClientID %>");
txtInRespRole.style.background = "#FFFF00";
if (document.getElementById('txtRespRoleName').value == '')
{
document.getElementById('txtRespRoleName').innerHTML = txtInRespRole;
return false;
}
}
function mouseOutRespRole()
{
var txtOutRespRole = document.getElementById("<%=txtRespRoleName.ClientID %>");
txtOutRespRole.style.background = "white";
if (document.getElementById('txtRespRoleName').value == '')
{
document.getElementById('txtRespRoleName').innerHTML = txtOutRespRole;
return true;
}
}