есть знакомый многим скрипт: [js]$(document).ready(function(){ $(".acc h3").eq(2).addClass("active"); $(".acc h3").click(function(){ $(this).next("p").slideToggle("fast").siblings("p:visible").slideUp("fast"); $(this).toggleClass("active"); $(this).siblings("h3").removeClass("active"); }); });[/js] все работает.. пишу админку и вот во что вляпался: есть блок id1, вобщем редактирую его, говорю серверу пережувать: [js]function WriteOldForm(updateid,formid,subname) { var edit1=document.getElementById(formid).value; if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById(updateid).innerHTML=xmlhttp.responseText; alert('Блок успешно обновлен.'); } } xmlhttp.open("GET","sql.php?req1="+edit1+"&req2="+subname,true); xmlhttp.send(); } [/js] он все верно вываливает, НО! после обновления не цепляет скрипт открытия\скрытия блока <p> у <h3>.. подробнее: первый скрипт делает меню "гармошка" на основе: <h3>заголовок</h3> <p>Текст блока</p> меняю в реалтайме на: <h3>Велосипед</h3> <p>Двухколесный</p> все меняется, НО! JS гармошка - больше не работает - блок не открывается.. второй день сижу, все перепробовал.. я новичек - не ругайтесь :blink: з.ы. это нормально когда ajax'ом меняем код, а браузер выдает старый "исходный код" ? з.ы.ы. в вызываемом выше sql.php переменная вида $_SESSION['xxx'] не должна работать?
Видимо есть ошибка в JS коде, или, если я правильно понимаю проблему, то после вставки нового куска кода, его придётся обработать по новой. То-есть старые селекторы jQuery на него на распространяются.
Kreker - ни в коей мере не хотел нагрубить.. просто пометка от лишних просмотров и "спама".. Devzirom - подскажи как мне это сделать? вместе с innerHTML слать jQ скрипт - не пашет.. MiksIr - если это будет не сложно можно первый скрипт переделать под лайв? я пока не понимаю как "live" работает, не сталкивался еще.. вот суть проблемы наглядно для копипаста в htm документ: [js]<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js'></script> <style type="text/css"> body { margin: 10px auto; width: 570px; font: 75%/120% Arial, Helvetica, sans-serif; } .accordion { width: 480px; border-bottom: solid 1px #c4c4c4; } .accordion h3 { background: #e9e7e7; padding: 7px 15px; margin: 3px; cursor: pointer; } </style> <script type="text/javascript"> $(document).ready(function(){ $(".accordion h3").addClass("active"); $(".accordion p").hide(); $(".accordion h3").click(function(){ $(this).next("p").slideToggle("slow") .siblings("p:visible").slideUp("slow"); $(this).toggleClass("active"); $(this).siblings("h3").removeClass("active"); }); }); function updatemenu() { document.getElementById('id1').innerHTML="<h3>Транспорт</h3><p>Велосипед</p>" } </script> <div class=accordion> <div id=id1><h3>Заголовок1</h3><p>Текст1</p></div> <div id=id2><h3>Заголовок2</h3><p>Текст2</p></div> <div id=id3><h3>Заголовок3</h3><p>Текст3</p></div> <div id=id4><h3>Заголовок4</h3><p>Текст4</p></div> </div> <br><br> <a href="javascript:updatemenu();void(0);">Изменить меню</a>[/js]