对于一个元件到接收焦点,它必须能够接收输入。没有一个“盒子”可以让他们在点击时不被视为有焦点。有一些方法可以通过在元素上设置tabindex来绕过焦点要求,但这仍然被认为是不标准的。
“如果没有选择,有源元件是一个网页的<body>
。” - Mozilla - activeElement
jsFiddle Demo
这个答案是你的标题,但不能完全解决您的本地化示例。在你的例子中,如果你希望有一个元素在你点击时变为“活动”,那么就给它一个类。例如,让每个元素单击类“activeElement”。现在,当任何点击事件被注册时,我们知道如果我们删除类为“activeElement”的元素,我们将删除最后点击的那个框。让我们也确保我们不会意外地允许这些点击事件传播,否则我们会删除错误的元素。
$('#red_box').click(function(e) {
e.stopPropagation();
$('.activeBox').remove();
$(this).addClass("activeBox");
alert($(".activeBox")[0].id + " is the active box");
});
$('#green_box').click(function(e) {
e.stopPropagation();
$('.activeBox').remove();
$(this).addClass("activeBox");
alert($(".activeBox")[0].id + " is the active box");
});
$('#beige_box').click(function(e) {
e.stopPropagation();
$('.activeBox').remove();
$(this).addClass("activeBox");
alert($(".activeBox")[0].id + " is the active box");
});
因为输入元素获得焦点吗? https://developer.mozilla.org/en-US/docs/Web/API/document.activeElement?redirectlocale=zh-CN&redirectslug=DOM%2Fdocument.activeElement – j08691 2013-05-13 22:19:31