JQuery, добавление динамического контента, почему в итоге отображается не всё?

Здравствуйте, проблема такая:

Получаю через ajax строчку вида 'user@mail.comЛишить доступа';
Добавляю её с помощью .append.

В исходном коде она присутствует, но в "Проинспектировать элемент" (Google Chrome) присутствует только "user@mail.comЛишить доступа". Самое главное, мне потом ещё потребуется работа с "", а jquery его не видит.

С чем связано такое поведение?
  • Вопрос задан
  • 3830 просмотров
Пригласить эксперта
Ответы на вопрос 6
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
Кавычки что ли удаляет?

строчку вида 'user@mail.comЛишить доступа'

присутствует только "user@mail.comЛишить доступа"

А то я не вижу отличия!
работа с ""
- это вообще что такое?
Ответ написан
Комментировать
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
<tr><input type="hidden" id="UID" value="123123123123"><td>user@mail.com</td><td align="center"><button id="del_user">Лишить доступа</button></td></tr>

Почему вы вставляете что-то в строку tr без ячейки td, пусть и скрытое поле? Вставляйте уж тогда прямо в ячейку td
<tr><td><input type="hidden" id="UID" value="123123123123">user@mail.com</td><td align="center"><button id="del_user">Лишить доступа</button></td></tr>

В исходном коде Вам показано все мракобесие, которое Вы написали, а инспектор кода в хроме показывает исправленный вариант, он Ваш инпут скорее всего просто как ошибку пропускает.

Возможно, в Проинспектировать элемент Вы смотрите только на ячейку? Ведь там все разбивает по строка, наверное выглядит так:
tr
input
td
td
/tr
Должно по крайней мере так. А вот почему не работают элементы новые - это уже вопрос к тому, как Вы навешиваете события. Или используйте live или on, или при append навешивайте события по новой.
Ответ написан
Комментировать
@DarkDiabolik Автор вопроса
Изначально добавленные строки(Не с помощью append, а через php) записываются также. И с ними никаких проблем нету в обработке. А с динамическими происходит, именно то что я пишу.
Ответ написан
@cold_brain
А как вы jquery событие вешаете? если через .click() то оно не будет работать с добавленными динамически элементами.
Ппробуйте так:
$("#del_user").on("click", function(event){
    alert('1');
});
Ответ написан
Комментировать
@DarkDiabolik Автор вопроса
$(document).on("click", "button#del_user",function(event) {
                alert("1");
                currentid = event.target;
                var request = $.ajax({
                    url : "http://",
                    type: "POST",
                    data: {del_user : $(event.target).closest("tr").find("input").attr("value")},
                    datatype:"html"
                });
                request.done(function(data) {
                    alert(data);
                    $(event.target).closest("tr").remove();                                  
                });
                request.fail(function(data) {
                    alert("По неизвестной причине не удалось выполнить удаление;");
                });
            });


Этот код работает с изначальными данными, но те которые добавились позже(append), просто при нажатие на кнопку, удаляется чуть ли не вся страница. Видимо closest("tr") отрабатывает не т.к как надо из-за того, что который он должен находить, его попросту нету.
Ответ написан
maxaon
@maxaon
Для начала сделайте правильную разметку, и только потом задавайте вопросы. Проверьте абсолютно весь свой код.
Я согласен с @iiil. Сделайте свой код корректным. Заодно проверьте его в валидаторе
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы