我在工作中有仪表板,我希望人们能够改变,以创造出他们最适合的类别选项卡上的文字。
我想这会忽略对改变单行文字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();
}
}
希望这可以帮助别人!