我在工作中有一个仪表板,我希望人们能够更改选项卡上的文本,以便创建最适合他们的类别。
我想要单行文本,它会忽略Esc
或提交更改Enter
或Blur
。
我找到了答案,但我想我会发布以帮助他人。
我在工作中有一个仪表板,我希望人们能够更改选项卡上的文本,以便创建最适合他们的类别。
我想要单行文本,它会忽略Esc
或提交更改Enter
或Blur
。
我找到了答案,但我想我会发布以帮助他人。
这是 HTML 标记:
<span contenteditable="false"></span>
这是 jQuery/javascript:
$(document).ready(function() {
$('[contenteditable]').dblclick(function() {
$(this).attr('contenteditable', 'true');
clearSelection();
$(this).trigger('focus');
});
$('[contenteditable]').live('focus', function() {
before = $(this).text();
if($(this).attr('contenteditable') == "true") { $(this).css('border', '1px solid #ffd646'); }
//}).live('blur paste', function() {
}).live('blur', function() {
$(this).attr('contenteditable', 'false');
$(this).css('border', '1px solid #fafafa');
$(this).text($(this).text().replace(/(\r\n|\n|\r)/gm,""));
if (before != $(this).text()) { $(this).trigger('change'); }
}).live('keyup', function(event) {
// ESC=27, Enter=13
if (event.which == 27) {
$(this).text(before);
$(this).trigger('blur');
} else if (event.which == 13) {
$(this).trigger('blur');
}
});
$('[contenteditable]').live('change', function() {
var $thisText = $(this).text();
//Do something with the new value.
});
});
function clearSelection() {
if ( document.selection ) {
document.selection.empty();
} else if ( window.getSelection ) {
window.getSelection().removeAllRanges();
}
}
希望这对某人有帮助!!!