Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: JQ Ajax
цитата
09/06/09 в 11:21
 freeek
Собственно коснулся сабжа совсем недавно
Понравилась реализация

Углубляясь в дебри уперся в такую проблему,

Отрывок примерного кода:
Код:
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;      
       


Собственно при обпределенных условиях создаем элемент Код:
div
, в последсвии наполняем его некоторыми данным, полученными от обращения к некому ajax.php.
Данные возврщенные аякс запросу имеют вид:
Код:
<input type="button" class="btn" value="someval" id=integer>


Суть проблемы: после заполнения и отображения, мне нужно работать с елементами которыми был наполнен Код:
div#ajax
, но почему то обращаясь к елементу Код:
$("div#ajax").find("input.btn").click(function(){alert(this.id);});
, JQ в упор его не видит, хотя елементы созданые до $.post: Код:
$("div#ajax").find("span").click(function(){alert($("div#ajax").find("span").html());});
и любой другой в Код:
div#ajax
JQ прекрасно видит и к ним можно легко обратиться и манипулировать.

Где ошибка?
Оффтопик: jq 1.2.6
цитата
09/06/09 в 13:35
 freeek
решение нашлось,

но тем не менее, может кто что-нить прокоментирует по сабжу, чисто для саморазвития icon_rolleyes.gif
цитата
09/06/09 в 18:56
 FXIX
Оффтопик: jq 1.2.6 это что? jQuery что ли? Сидел минут 5 ломал что за приблуда такая JQAjax.

Насколько помню в версии 1.2.6 была проблема что на лету созданные DOM-элементы не цеплял обработчик (загруженный ясно дело раньше чем, созданные\выдернутые на страницу по ajax, элементы). (http://habrahabr.ru/blogs/jquery/47822/) В новой пофиксили вроде.
цитата
09/06/09 в 19:11
 Some Milk
Созданные на лету элементы действительно не цепляются. Не знаю, как это сейчас, возможно, и пофиксили, но по старой памяти я в таких случаях всегда исполняю зависящий от таких вещей код через setTimeout(), с минимальной задержкой все работает.
цитата
09/06/09 в 19:38
 freeek
запихал выполнение работ над создаными на лету елементами в колбэк от аякса и т.д. по иерархии и очередности создавания, все работает вроде

конечно не везде получается настолько гибко как хотелось бы, но это вопрос работы над кодом, это оставлю на потом
цитата
09/06/09 в 19:55
 FXIX
Присмотрись еще к http://fullajax.ru/. Многие интересные фишки реализованы.


Эта страница в полной версии