【发布时间】:2015-05-07 06:59:26
【问题描述】:
我有以下 jQuery/js 控制 trello 样式输入字段。因此,当您单击 span 元素时,它会切换到输入字段。然后在您完成编辑元素并将焦点从它身上移开(模糊)后,它会切换回带有新文本的 span 元素。我还让它提交给一个 ajax 脚本,以将新文本提交到我的数据库。
现在这一切都完美无缺,我对上述内容没有任何问题。当我试图让“切换回跨度元素”在“输入”按键上起作用时,问题就来了。
我已经用警报测试了代码,所以我知道正在检测回车键,但我无法从按键函数中触发“editableTextBlurred”函数。这意味着它不会在 enter 按下时切换回 span 元素。
function divClicked(div) {
div = "#"+div;
var divHtml = $(div).text();
var editableText = $('<input type="text" id="firstname" name="firstname" placeholder="First Name" onChange="profileUpdate(this)">');
editableText.val(divHtml);
$(div).replaceWith(editableText);
editableText.focus();
console.log(editableText);
// setup the blur event for this new textarea
editableText.blur(editableTextBlurred);
$(":input").keypress(function(event) {
if (event.which == '13') {
event.preventDefault();
editableTextBlurred();
}
});
}
function editableTextBlurred() {
var html = $(this).val();
var viewableText = $("<span id='firtname_text' onClick='divClicked(this.id)'></span>");
viewableText.html(html);
$(this).replaceWith(viewableText);
}
<span id='firtname_text' onClick='divClicked(this.id)'>
".ucfirst($fname)."
</span>
任何关于我遗漏或做错的见解将不胜感激, 谢谢!
【问题讨论】:
-
尝试 Keyup 事件。它可能会起作用。有时某些浏览器无法处理按键事件。
标签: javascript jquery function key keypress