редактировать текст пользовательского <ul>массива - PullRequest
2 голосов
/ 11 мая 2011

Я новичок в jquery, и у меня есть вопрос об обновлении данных на моей странице.

У меня есть неупорядоченный список, которым я позволяю пользователю манипулировать.Хотя UL начинается только с одного элемента списка, я разрешаю пользователю добавлять объекты в этот массив.Теперь у меня есть цель, чтобы пользователь щелкнул по объекту из UL, который перетягивает его в текстовую область только для чтения, а другую текстовую область, чтобы пользователь мог ввести пользовательскую строку и сделать целевой элемент списка (text()), сталпользовательская строка.

Теперь, я не смущен тем, как вытащить .text(), и я почти уверен, что могу поместить пользовательскую строку, которую пользователь создает, в текстовый атрибут выбранного элемента списка ...

Проблема, с которой я столкнулся, например:

Страница начинается с одного (пустого) объекта в массиве.Я нажимаю «добавить объект», и теперь исходный массив изменяется на 2 объекта или 3 и т. Д. Объекты, которые были добавлены в этот массив, «не появляются» в моем сценарии JQuery.Только этот первый объект передаст свой текст в область текста при нажатии.То же самое касается, если я инициализирую этот массив, скажем, 3 объекта ... только эти три будут активными.

Я могу показать фрагменты кода, если это поможет.Или, если у вас есть вопросы, пожалуйста, задавайте, и мы пойдем оттуда, спасибо.

Мой тестовый URL: http://whoneedsstandards.com/subdomains/travis/jquery.htm ... может быть, вы можете следовать моим шагам?

Код:

//add to list items//
    $('a#add').click(function () {
        $('<li id="' + i + '">Blank Object</li>' + i + '').appendTo('#ul1');
        i++;
        $('#ul1>li:even').addClass('alert');
        $('#ul1').load();
    });
//click list item to store in textarea//
    $('#ul1>li').click(function () {
        var temptext = ($(this).text());
        $('textarea#text1').text(temptext);

    });

1 Ответ

1 голос
/ 11 мая 2011

Используйте метод .live для регистрации вашего обработчика кликов.

var lastClickedLi;

$("#ul1 > li").live("click", function() {
    lastClickedLi = $(this);
});

См. скрипка для более полного примера.

...