javascript - 将按钮变成文本区域的问题

标签 javascript jquery jsfiddle

我想要一个编辑按钮,单击时会变成文本区域。但是,当我单击该按钮时,生成的文本区域将不会保持键盘焦点,并且我无法编辑它。

Javascript代码:

var listEditHTML = "\
    <textarea name='edit_text'> Enter a date </textarea>\
";

$(document).ready(function()
{
    var App = { };
    App.default_text = 'Enter a date';

    $('button').click(function(){
        $(this).html(listEditHTML);
    });
});

HTML 代码:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
</script>


<button> edit </button>

此外,代码是用 JFiddle 创建的,所以如果有人感兴趣的话,这里是 fiddle : http://jsfiddle.net/wasingej/TT5nw/17/

注意:我还尝试在 W3schools 'tryit' 编辑器中运行此代码,它产生了相同的结果,所以我怀疑问题出在我的 Fiddle 上。

最佳答案

试试这个:

$('button').click(function(){
        $(this).after(listEditHTML);
        $(this).remove();
});

或者正如@Dan指出的那样,使用replaceWith

问题是,您将文本字段放在按钮内(您可以在原始 fiddle 中看到按钮-y 背景)。您希望将字段放在按钮之后,然后删除按钮。

关于javascript - 将按钮变成文本区域的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23023766/

相关文章:

html - 如何在 github markdown 中包含 jsfiddle(或等效的)?

javascript - 暂时禁用方形的点击事件监听器(拾色器游戏)

javascript - 如何从数组字符串动态地在 JavaScript 中创建对象键和值

javascript - 从不同 div 中的输入值填充文本区域

javascript - 无法应用 knockout 绑定(bind),即使使用默认教程

javascript - 在页面加载时突出显示特定按钮

javascript - 我不明白为什么图表上的tickinterval和 'dot'没有对齐?

javascript - 关于事件的 jsfiddle 解释

javascript - addEventListener 类型 'click' 实际上表现得像 'load'

javascript - jQuery - 在动态创建的元素上移动鼠标