|
12.09.2014, 18:44
|
Новичок на форуме
|
|
Регистрация: 12.09.2014
Сообщений: 4
|
|
.append и немного гимороя.
Собственно сама проблема :
При добавлении html кода с помощью метода .append , визуально он появляется (код), а в исходном коде его нет.
Как исправить или исправить подобное нельзя?
|
|
12.09.2014, 18:57
|
Профессор
|
|
Регистрация: 12.12.2012
Сообщений: 1,398
|
|
ну в иходном коде его и не должно быть
|
|
12.09.2014, 18:57
|
Профессор
|
|
Регистрация: 12.12.2012
Сообщений: 1,398
|
|
он же исходный
|
|
12.09.2014, 18:58
|
Профессор
|
|
Регистрация: 12.12.2012
Сообщений: 1,398
|
|
В исходном коде отображается только то что пришло от сервера без каких-либо изменений на стороне клиента.
|
|
12.09.2014, 19:03
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
AnshaHari, актуальный html смотри в "инспекторе".)
__________________
29375, 35
|
|
12.09.2014, 19:29
|
Новичок на форуме
|
|
Регистрация: 12.09.2014
Сообщений: 4
|
|
Просто у меня как-то так. Если я динамически добавляю посты, для них не обрабатываются события подобного рода.
$(document).ready(function($){
...
$('.post').click(function(event) {
console.log('click')
/* Act on the event */
if (nowPlay) {
document.getElementById(nowPlay +"music").pause();
};
console.log(nowPlay);
nowPlay = $(this).attr("song");
document.getElementById(nowPlay +"music").play();
});
...
});
Последний раз редактировалось AnshaHari, 12.09.2014 в 19:38.
|
|
12.09.2014, 19:37
|
Профессор
|
|
Регистрация: 12.12.2012
Сообщений: 1,398
|
|
Есть 2 пути решения:
1) Либо заново добавлять обработчики на новые элементы
2) Слушать событие на родителе который не меняется и через event.target отслеживать изменения. Хотя так как вы пользуете jQuery - просто почитайте документацию метода "on", там есть решение вашей проблемы.
|
|
12.09.2014, 19:48
|
Новичок на форуме
|
|
Регистрация: 12.09.2014
Сообщений: 4
|
|
Сообщение от tsigel
|
Есть 2 пути решения:
Хотя так как вы пользуете jQuery - просто почитайте документацию метода "on", там есть решение вашей проблемы.
|
Результат такой же. Попробую от родителя
...
$('.post').on('click',function(event) {
console.log('click')
/* Act on the event */
if (nowPlay) {
document.getElementById(nowPlay +"music").pause();
};
console.log(nowPlay);
nowPlay = $(this).attr("song");
document.getElementById(nowPlay +"music").play();
});
...
|
|
12.09.2014, 19:53
|
Профессор
|
|
Регистрация: 12.12.2012
Сообщений: 1,398
|
|
Цитата:
|
.on(events-map, [selector], [data])
:jQueryv:1.7
с помощью этого метода можно установить на выбранные элементы сразу несколько разных обработчиков событий, каждый из которых будет реагировать на свой тип события.
events-map — объект, в котором нужно перечислить типы обрабатываемых событий и соответствующие им обработчики. Задается в формате {events-1:handler-1, events-2:handler-2, ...}, где events-i и handler-i соответствуют параметрам events и handler в первом варианте метода (описанном выше).
selector — селектор по которому будут фильтроваться элементы, лежащие внутри уже найденных. В итоге, обработчик будет срабатывать только в том случае, если событие «поднялось» от одного из отфильтрованных
data — см. выше..
|
Цитата отсюда.
У вас должно быть примерно так:
$("StaticParentSelector").on("click", "dynamicChildSelector", handler);
Последний раз редактировалось tsigel, 12.09.2014 в 19:55.
|
|
12.09.2014, 19:54
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Цитата:
|
Попробую от родителя
|
Где? Вы делаете то же самое.
__________________
29375, 35
|
|
|
|