动态添加textarea不起作用

时间:2013-07-06 17:25:13

标签: javascript jquery

有一个表我想逐行编辑,用户点击包含文本的单元格,它会更改为文本区域。

Textarea添加很好,但完全没有功能。

Here's a fiddle

或者我正在尝试做的代码?

<div id="click"></div>

#click {
    width: 200px;
    height: 100px;
    border: 1px solid black;
}

$(function(){
    $('#click').click(function(){
        $(this).html("<textarea></textarea>");
    });
});

2 个答案:

答案 0 :(得分:2)

添加focus后,

添加textarea个事件。

$(function () {
    $('#click').click(function () {
       $(this).html("<textarea></textarea>").find("textarea").focus();
    });
});

更新了小提琴:http://jsfiddle.net/na7sZ/2/

你也可以这样做:

$('#click').click(function () {
        var textarea = $('<textarea/>');
        $(this).html(textarea);
        textarea.focus();
});

小提琴:http://jsfiddle.net/na7sZ/5/

答案 1 :(得分:1)

这是因为你的textarea位于click div内,所以点击textarea也是点击div,删除/创建一个新的textarea。

将此添加到您的代码:

$('#click').on('click', 'textarea', function(e){
    e.stopPropagation()
})

它会阻止事件冒泡而不会重新创建textarea。

小提琴:http://jsfiddle.net/na7sZ/4/