對於一個元件到接收焦點,它必須能夠接收輸入。沒有一個「盒子」可以讓他們在點擊時不被視爲有焦點。有一些方法可以通過在元素上設置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