3 回答

TA貢獻1851條經驗 獲得超4個贊
只需使用document.activeElement和Element.closestAPI。
const activeDiv = document.activeElement.closest('[contenteditable]');
function onMouseUp(e) {
const activeDiv = document.activeElement.closest('[contenteditable]');
console.log(activeDiv);
const outputElement = document.getElementById('output-element');
outputElement.innerText = activeDiv.id;
}
const textarea1 = document.getElementById('ta-example-one');
const textarea2 = document.getElementById('ta-example-two');
textarea1.addEventListener('mouseup', onMouseUp, false);
textarea2.addEventListener('mouseup', onMouseUp, false);
<form>
<div id="ta-example-one" data-gramm="false" contenteditable="true">
Foo bar baz plugh
</div>
<div id="ta-example-two" data-gramm="false" contenteditable="true">
Foo bar baz plugh
</div>
</form>
<p>Active element ID: <strong id="output-element"></strong></p>

TA貢獻1804條經驗 獲得超3個贊
好的,所以我嘗試了一些不同的東西。您似乎想知道該 div 是否具有焦點。(例如,如果您的 div 是輸入元素,并且您想知道當前是否獲得焦點)。
試試這個。
let textDiv =document.getElementById('textDiv');
testDiv.addEventListener('focus',function(){
if(testDiv.focus){
console.log('coursor inside!')
}
})
也許它會起作用

TA貢獻1775條經驗 獲得超11個贊
我不知道我是否答對了你的問題。如果你想知道 coursor 是否在那個 div 解決方案中,可能是 onmouseover 事件。
<div class="ql-editor" data-gramm="false" contenteditable="true" onmouseover= "isInside()">
function isInside(){
Console.log("Coursor is inside!")
}
或者你可以用 Javascript 完成這一切,但你必須將 ID 添加到該 div。例如 div 將是:textDiv。
Let textDiv = document.getElementById("textDiv");
textDiv.addEventListener("mouseover",function(){
Console.log("Coursor is inside !");
});
添加回答
舉報