Не работает javascript в документе, вызванным AJAX.
Собственно, сабж.
Вызываю документ: $(document).ready(function(){ $('#butnews').click(function(){ $.post( "/newsbox.php", writebox );}); }); function writebox(data){ document.getElementById('newsbox').innerHTML = data; } Появляется документ, вида: <button onclick="opana()">Обновить</button><br> <script> function opana(){ alert('123'); } </script> При нажатии на кнопку, ничего не происходит. В чём ошибка? |
так попробуйте
function writebox(data){ $('newsbox').html(data) } |
а так у меня перестаёт записываться документ.
|
Hauster,
<button id=butAJaks <script> $("#butAJaks").live("click", function(){ alert("Oppana"); alert('123') }); </script> |
Цитата:
|
melky,
Да нет - тут суть в привязках событий, трабла обычно нет если бы скрипт обработки подгружался вместе с кнопкой и чуть впереди по контенту |
Вот страница:
<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js"></script> </head> <body> <button id="button">Жми!</button> <div id="text">non</div> <script> $('#button').click(function(){ $.post( "./123.html", writebox );}); function writebox(data){ document.getElementById('text').innerHTML = data; } </script> </body> </html> Вот страница 123: <div id="butAjaks">123</div> <script> $("#butAJaks").live("click", function(){ alert("Oppana"); }); </script> Google Chrome ошибок не выдаёт. Если поставить скрипт выше, ничего не произойдет. |
Цитата:
<button onclick="opa()">?!</button> <script> function opa() { alert("!!!!!!"); } </script> Hauster, читайте мой пост. |
Цитата:
Скрипты существуют в Google Chrome, но они не работают. И как быть в таком случае? |
Цитата:
а если просто в файл, откуда загружается html, поставить тег script с alert, то он вылетает? попробуйте добавить в options параметр dataType со значением "html" source |
Hauster,
Поставьте мою версию - она анализирует событие как оно происходит.. Ы... |
Цитата:
|
Цитата:
Цитата:
И нет, при загрузке 123 ничего не происходит. <!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js"></script> </head> <body> <button id="button">Жми!</button> <div id="text">non</div> <script> $('#button').click(function(){ $.ajax({ type: "POST", url: "./123.html", dataType: "html", success: writebox }); }); function writebox(data){ document.getElementById('text').innerHTML = data; } </script> </body> </html> 123 <script> alert(123); </script> Соответственно: $('#button').click(function(){ $.ajax({ type: "POST", url: "./123.html", dataType: "script", success: writebox }); }); function writebox(data){ document.getElementById('text').innerHTML = data; } Так выводит алерт: 123. Если в файле только код JS: alert(123); |
Hauster, A так ?
<button id=butAJaks <script> $(document).ready(function(){ $("#butAJaks").live("click", function(){ alert("Oppana"); alert('123') }); }); </script> |
Цитата:
И ничего при нажатии не происходит. |
Hauster,
<button id=butAJaks>Обновить</button><br> Зачеркнутое то убирали - мну ж спецом зачеркнул |
Цитата:
<button id="butAjaks">ALERT!</button> <script> $(document).ready(function(){ $("#butAJaks").live("click", function(){ allert("Oppana"); alert('123') }); }); </script> Уж извините, догадался. |
Hauster,
:-E Соррь - там два LL в ALERT - поправил |
Цитата:
В общем, решил проблему отдельно подключая JavaScript. $.ajax({ type: "POST", url: "/scripts/upon.js", dataType: "script", success: javac }); Извращенски конечно, но да ладно. Работает же :D |
Hauster,
Ну а кто мешает запихнуть весь код в JS ? Дабы не было двух запросов.... |
Цитата:
Сам то хоть пробывал? :D |
Цитата:
var s='<button onclick="opana()">Обновить</button><br>'; $("#writebox").append(s) |
Часовой пояс GMT +3, время: 14:02. |