javascript - 焦点上的 Textarea 变成一个 DIV,单击该 div 时它会返回到 textarea?查询

标签 javascript jquery html css

我正在尝试创建一个 node.js 应用程序以在两台机器之间传输代码。第一步是将代码粘贴到文本区域,然后按 Enter 键。按回车键后,它变成一个 div 或一个 <pre>。代码高亮。

我已经设置了通信。让我感到困惑的部分是如何将 div 变回文本区域。

如果我在文本区域外单击,它会变成一个 div,这一切都很好,但我无法让第二部分工作。

http://jsfiddle.net/GeJkU/1045/

HTML

<textarea id="chatText">123</textarea>

JS

$chatDiv = $('#chatDiv');
$chatText = $('#chatText');

$chatDivHtml = $chatDiv.val();
$chatTextHtml = $chatText.html();

function divClicked() {
    var divReplace = $("<div>").attr("id", "chatDiv").text($chatTextHtml);
    $chatText.replaceWith(divReplace);
    divReplace.click(editableTextBlurred);     
}

function editableTextBlurred() {
    console.log("clicked");
    var textReplace = $("<textarea />").attr("id", "chatText").val($chatDivHtml);
    $chatDiv.replaceWith(textReplace);
    $chatDiv.click(divClicked);
}

$(document).ready(function () {
    $chatText.click(divClicked);
});

最佳答案

http://jsfiddle.net/GeJkU/1060/

使用 .live() 为动态生成的元素附加事件,因为您使用的是 jquery 1.4 版本。对于更高版本,您需要使用 .on()

$('#chatText').click(divClicked);
$('#chatDiv').live('click', editableTextBlurred);

function divClicked() {
    var $chatText = $('#chatText'),
        $chatTextHtml = $chatText.val();
    var divReplace = $("<div>").attr("id", "chatDiv").text($chatTextHtml);
    $chatText.replaceWith(divReplace);
    $(divReplace).click(editableTextBlurred);
}

function editableTextBlurred() {
    var $chatDiv = $('#chatDiv'),
        $chatDivHtml = $chatDiv.text();
    console.log("clicked");
    var textReplace = $("<textarea />").attr("id", "chatText").val($chatDivHtml);
    $chatDiv.replaceWith(textReplace);
    $(textReplace).click(divClicked);
}

关于javascript - 焦点上的 Textarea 变成一个 DIV,单击该 div 时它会返回到 textarea?查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21262363/

相关文章:

javascript - JQuery如何防止图片跳出窗口

javascript - 如何在 'onclick' 方法之前返回状态?

javascript - gsutil 在每个命令上超时

javascript - 如何解析 JSON 对象并将值作为字符串显示在屏幕上?

javascript - 更改 jqGrid 中的导航栏图标

jquery - 群体细胞行为——轻快

html - Ember 和 HTML5 contenteditable 属性

javascript - 从 Django 中的 Javascript 表单访问 GET 表单数据

javascript - 使用 Cheerio 在嵌套表 td 中获取 div 文本

javascript - 有间隔的循环停止作用