0

我对 JavaScript 真的很陌生,甚至还没有完成 Codeacademy 上的课程。但我确实完成了 jQuery、HTML/CSS 和 Python,所以至少逻辑对我来说并不完全陌生......

无论如何,我做了一个测试页面来尝试第一次练习我的 JavaScript 技能,我最终做的是制作一个“颜色选择” div,当你点击它时它会变成不同的颜色,然后是一个满是当鼠标悬停在“颜色选择”div上时,不同的单元格将变为“颜色选择”div的颜色。所以基本上是一个非常简单的着色板。但实际上,您不能只单击画布并开始着色,无论您是否选择了鼠标进入屏幕的该部分,它都会改变颜色。

“画布”本身只是一张大桌子。如果我理解正确,我不能只在桌子上使用 .focus() 。

所以我想简单地说......我想知道是否有任何方法可以说“当这张桌子处于焦点时,当鼠标悬停在(this)上时执行X”。或者,“当用户在此表中单击时,使这些单元格在鼠标悬停时改变颜色。但是当用户在表外单击时,停止这样做。”

这甚至是一种可能性,还是我以错误的方式进行了这一切?

4

1 回答 1

0

也许试试这个:

看演示

$('#myelem').attr('tabindex',-1).hover(function () {
    if (document.activeElement === this) {
        console.log('hover');
    }
});

设置 tabindex 属性是为了在某些浏览器中对焦点事件的跨浏览器支持,默认情况下不设置 tabindex,某些 html 元素本身不支持焦点。

顺便说一句,如果您不希望浏览器重新设置焦点元素的样式,则可以将此 css 添加到元素中:

$('#myelem').css('outline',0).attr('tabindex',-1).hover(function () {...});
于 2013-04-28T11:01:25.330 回答