将动态数据附加到文本区域(手动编辑文本区域后脚本停止工作)

appending dynamic data to textarea (script stops working after manually editing textarea)

我创建了从 json 动态创建列表的脚本。我制作了点击处理程序,它获取列表元素的值并将其附加到文本区域。

如果我不手动编辑 textarea,这会很好用。如果我这样做,数据将不再附加到 textarea。请看例子。

/* url 被作者删除 */

$(document).ready(function() {

    // getting snippets
    $.getJSON('assets/snippets/default.json', function(data) {  
        $.each(data, function(key, val) {
            $('.snippets-list').append(
                '<li><a class="snippet" href="#">' + val + '</a></li>'
            );

            console.log(key + "value: " + val);
        });
    });

    // adding snippet to composed text
    $('.snippets-list').on('click', '.snippet', function(event) {
        event.preventDefault();
        console.log('I have been clicked.');
        $('.composed-text').append($(this).html());
    })

});

如有任何帮助,我们将不胜感激。

您需要更新文本区域值,例如:

$('.snippets-list').on('click', '.snippet', function (event) {
    event.preventDefault();
    console.log('I have been clicked.');
    var txt = $.trim($(this).html());
    $('.composed-text').val(function () {
        return this.value + txt;
    });
});