С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 09/06/09 в 11:21 |
Собственно коснулся сабжа совсем недавно
Понравилась реализация
Углубляясь в дебри уперся в такую проблему,
Отрывок примерного кода:
Код: | case "var" :
$("body").append("<div id='ajax'><span class='myerr close' style='float:right; cursor:pointer;'>X</span><br><b class=head>some text</b><br><br id=aft><hr size=1>some text (<b class=warn>text</b>)<br><input size='40' maxlength='100' id='someval'><br><br><button class='btn'>press button</button><br><p class=out></p></div>");
$.post
(
"ajax.php",
{key:this.id,val:this.value},
function(data)
{
$("div#ajax").find("br#aft").after(data);
}
);
break;
|
Собственно при обпределенных условиях создаем элемент , в последсвии наполняем его некоторыми данным, полученными от обращения к некому ajax.php.
Данные возврщенные аякс запросу имеют вид:
Код: | <input type="button" class="btn" value="someval" id=integer> |
Суть проблемы: после заполнения и отображения, мне нужно работать с елементами которыми был наполнен , но почему то обращаясь к елементу Код: | $("div#ajax").find("input.btn").click(function(){alert(this.id);}); |
, JQ в упор его не видит, хотя елементы созданые до $.post: Код: | $("div#ajax").find("span").click(function(){alert($("div#ajax").find("span").html());}); |
и любой другой в JQ прекрасно видит и к ним можно легко обратиться и манипулировать.
Где ошибка?
Оффтопик: jq 1.2.6
|
|
|
|
С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 09/06/09 в 13:35 |
решение нашлось,
но тем не менее, может кто что-нить прокоментирует по сабжу, чисто для саморазвития
|
|
|
|
Добрых Дел Мастер
С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227
|
Добавлено: 09/06/09 в 18:56 |
Оффтопик: jq 1.2.6 это что? jQuery что ли? Сидел минут 5 ломал что за приблуда такая JQAjax.
Насколько помню в версии 1.2.6 была проблема что на лету созданные DOM-элементы не цеплял обработчик (загруженный ясно дело раньше чем, созданные\выдернутые на страницу по ajax, элементы). (http://habrahabr.ru/blogs/jquery/47822/) В новой пофиксили вроде.
|
|
|
|
С нами с 16.10.06
Сообщения: 56
Рейтинг: 259
|
Добавлено: 09/06/09 в 19:11 |
Созданные на лету элементы действительно не цепляются. Не знаю, как это сейчас, возможно, и пофиксили, но по старой памяти я в таких случаях всегда исполняю зависящий от таких вещей код через setTimeout(), с минимальной задержкой все работает.
|
|
|
|
С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 09/06/09 в 19:38 |
запихал выполнение работ над создаными на лету елементами в колбэк от аякса и т.д. по иерархии и очередности создавания, все работает вроде
конечно не везде получается настолько гибко как хотелось бы, но это вопрос работы над кодом, это оставлю на потом
|
|
|
|
Добрых Дел Мастер
С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227
|
Добавлено: 09/06/09 в 19:55 |
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |