gpt4 book ai didi

javascript - 自定义大纲问题

转载 作者:行者123 更新时间:2023-11-29 22:31:15 26 4
gpt4 key购买 nike

我编写了以下脚本来覆盖浏览器的默认大纲系统:

*
{
margin: 0;
outline-color: #C79700;
outline-width: 1px;
padding: 0;
}

$('document').delegate('[tabindex]', 'focusin focusout mousedown', function(event)
{
var target = $(event.target);

switch(event.type)
{
case 'focusin':
{
var clicked = target.data('clicked');

target.removeData('clicked');

if (clicked)
target.css('outline-style', 'none');
else
target.css('outline-style', 'solid');

break;
}

case 'focusout':
target.css('outline-style', 'none');
break;

case 'mousedown':
{
if (target.prop('tagName') === 'B')
target = target.parent();

if (!target.is(':focus'))
target.data('clicked', true);
else
target.css('outline-style', 'none');

break;
}
}
})

一切正常,但我有一个小问题:如果我激活另一个窗口(通过最小化浏览器或使用 ALT+TAB),文档将失去焦点,元素也会失去焦点……然后,如果我重新激活浏览器window, data('clicked') 显然是 false,如果选择了 [tabindex] 元素,则脚本会对其进行概述。

我该如何防止这种情况发生?我尝试了很多解决方案但都没有成功。有没有类似的东西:

            if (clicked || browser-has-just-become-active)
target.css('outline-style', 'none');
else
target.css('outline-style', 'solid');

非常非常感谢!

最佳答案

我很确定你可以使用:

window.onfocus

或者对于 IE:

document.onfocusin

关于javascript - 自定义大纲问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6859443/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com