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 !");
});
添加回答
举报
