Jquery 单击链接并将鼠标移离链接时,链接将保持焦点。但当我向下移动链接,然后将鼠标移出链接并释放鼠标时,会失去焦点
如果用户在链接上单击鼠标,但随后将鼠标移离链接,同时仍按住鼠标按钮,并释放鼠标按钮,我试图去除仍然具有焦点的元素。对我来说,这意味着用户在释放鼠标按钮之前意识到他们不想点击链接-因此他们没有在链接上释放鼠标按钮,而是将鼠标从链接上移开,然后释放鼠标按钮 元素可以是链接,也可以是具有活动和焦点样式的div/span,其工作原理相同 在我的示例中,如果我单击其中一个div,它会按我希望的方式操作,但当我鼠标移出时,它会将焦点移开,这是不应该发生的。只有当用户在link/div上鼠标向下移动,然后将鼠标从元素上拖出,然后释放鼠标按钮时,焦点才应消失。但是我希望元素保持焦点样式,如果他们单击元素,然后在单击之后,将鼠标悬停在元素之外。这是我的问题,如果我单击元素,然后在单击后将鼠标移离元素,它会失去焦点。我知道我的jQuery不正确,出于某种原因,我很难弄清楚jQuery应该是什么样子Jquery 单击链接并将鼠标移离链接时,链接将保持焦点。但当我向下移动链接,然后将鼠标移出链接并释放鼠标时,会失去焦点,jquery,focus,hyperlink,mouseout,mousedown,Jquery,Focus,Hyperlink,Mouseout,Mousedown,如果用户在链接上单击鼠标,但随后将鼠标移离链接,同时仍按住鼠标按钮,并释放鼠标按钮,我试图去除仍然具有焦点的元素。对我来说,这意味着用户在释放鼠标按钮之前意识到他们不想点击链接-因此他们没有在链接上释放鼠标按钮,而是将鼠标从链接上移开,然后释放鼠标按钮 元素可以是链接,也可以是具有活动和焦点样式的div/span,其工作原理相同 在我的示例中,如果我单击其中一个div,它会按我希望的方式操作,但当我鼠标移出时,它会将焦点移开,这是不应该发生的。只有当用户在link/div上鼠标向下移动,然后将鼠
$('div').mousedown(function(){
$(this).mouseleave(function(){
if ($(this).mousedown()) {
$(this).blur()
}
})
})
这是我能想到的最好的了。虽然不优雅,但完成了任务。问题是焦点事件发生在mouseup上。但是你不知道鼠标移动事件会发生在哪里。所以我们必须用一个全局的来跟踪它
你的解释有点混乱。你能通过明确地解释你想要发生什么来帮上忙吗?如-1所示。点击,不要放手。Div变成蓝色。2.将鼠标从div上移开并松开。我想?同样对于点击和释放的情况,我很困惑你们所描述的和默认的锚行为有什么不同。鼠标指针:悬停,鼠标指针:活动,鼠标指针:默认,鼠标指针:活动,鼠标指针:单击
//keep track of whether the mouse is down or up
var mouseDown;
document.body.onmousedown = function() {
mouseDown = true;
}
document.body.onmouseup = function() {
mouseDown = false;
}
//store currently selected element
var activeElement;
//on mouse leave check whether the mouse is down. if so store the element for
//release on mouse up
$('div').mouseleave(function() {
console.log(mouseDown);
if (mouseDown) {
console.log('blur');
activeElement = $(this);
}
else { activeElement = null; }
})
//release the element
$(document).mouseup(function() {
if (activeElement) {
console.log('active Element');
activeElement.blur();
}
});