gpt4 book ai didi

javascript - 带有 contentEditable 元素的自定义占位符

转载 作者:行者123 更新时间:2023-11-30 16:00:28 24 4
gpt4 key购买 nike

https://jsfiddle.net/cp1ntk45/

我写了一个函数来替换原来的 html 占位符,然后我可以设置占位符文本的样式。

它适用于输入和文本区域元素,
如果目标是问题contentEditable div,点击一次不聚焦,无法输入,需要点击第二次聚焦...
如何让只点击一次并聚焦

var placeholder = function(el) {
el.on('focusin', function() {
var val = $(this).text();

var placeholder = $(this).attr('data-placeholder');

if (val == placeholder) {
if ($(this).attr('data-empty') != 'false') {

$(this).text('');
}
}
});
el.on('focusout', function() {
var val = $(this).text();
var placeholder = $(this).attr('data-placeholder');

if (val == '') {
$(this).text(placeholder);

$(this).attr('data-empty', 'true');
} else {
$(this).attr('data-empty', 'false');
}
});
};

placeholder($('.textarea'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>


<div class="textarea" contentEditable="true" data-placeholder="placeholder">placeholder</div>

最佳答案

您可以在 contenteditable 元素上使用 CSS :empty:before
使用 content: attr(data-placeholder) 您可以标记任何您想要的文本。

[contenteditable] {padding:12px; background:#eee; }

[data-placeholder]:empty:before{
content: attr(data-placeholder);
color: #888;
font-style: italic;
}
<div contenteditable data-placeholder="I'm a placeholder"></div>

关于javascript - 带有 contentEditable 元素的自定义占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37844735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com