span标签需要一直不可编辑,但是希望光标挨着内容而不是在div的最右边
时间: 2024-03-01 12:51:19 浏览: 58
如果您希望<span>标签一直处于不可编辑状态,但是又希望在移动设备上光标挨着内容而不是在<div>的最右边,可以考虑在<span>标签内部添加一个空白字符,使得光标可以定位到空白字符的位置。以下是一个示例代码:
```html
<div id="myDiv" contenteditable="true">
<span>不可编辑的文本</span>
<span>可编辑的文本</span>
<span>不可编辑的文本</span>
</div>
<script>
var div = document.getElementById("myDiv");
div.addEventListener("focus", function() {
var spans = div.getElementsByTagName("span");
for (var i = 0; i < spans.length; i++) {
spans[i].innerHTML += " ";
}
});
div.addEventListener("blur", function() {
var spans = div.getElementsByTagName("span");
for (var i = 0; i < spans.length; i++) {
if (spans[i].innerHTML.substr(-1) === " ") {
spans[i].innerHTML = spans[i].innerHTML.slice(0, -1);
}
}
});
</script>
```
在这个示例中,我们为<div>元素设置了contenteditable属性,使其变为可编辑状态。在<div>元素上监听了focus和blur事件,当<div>元素获取焦点时,遍历其中的所有<span>标签,为每个<span>标签添加一个空白字符。当<div>元素失去焦点时,遍历其中的所有<span>标签,如果最后一个字符是空白字符,则将其删除。这样,即使在移动设备上,用户也可以正确地编辑文本并且光标的位置也会正确地显示。
阅读全文