Такая проблема случилась. Код показывать не буду. Там много. Врядли кому интересно будет его смотреть. Постараюсь изложить суть.
1. index php генерирует страницу. Вся динамическая. В tpl php вставки присутствуют через обращения в класс.
2. На этой странице при выборе параметров и нажатия кнопки play часть контента стирается и создается новый на jquery. Примерно так
$('.game_play').empty();
$('что то ').appendTo('.game_play');
В самом начале этого события оригинальный html который стерся передался на сервер и записался в файл (ajax/original.html).
После этого при нажатии кнопки back происходит возврат к предыдущему состоянию страницы. Вот фрагмент
$('.game_play').empty();
$('.game_play').load('ajax/original.html');
Проблема в том, что после возврата кнопка play перестает работать. Почему так происходит?
Спустя 1 день, 3 часа, 41 минута, 24 секунды (11.06.2011 - 22:47) SoMeOnE написал(а):
Вроде бы понел проблема в чем, но как ее решить, вопрос.
Допустим есть файл index.php
и js
Вот когда <div id="play">play</div> находится внутри контента <div id="test">
который я очищаю, то после возврата в прежнее состояние (back), play перестает работать. Если <div id="play">play</div> вытащить из этого контента то бесперебойно работает. Это возможно исправить, или его нельзя вставлять внутрь очищаемого контента.
Допустим есть файл index.php
<?php
session_start();
define('DIRECT_ACCESS', 1); // PRE - init
@ini_set('display_errors', true);
error_reporting(E_ALL);
//error_reporting(E_NONE);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
<link rel="stylesheet" href="http://localhost/back/main.css" type="text/css" />
<script src="http://localhost/back/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="http://localhost/back/content.js" type="text/javascript"></script>
</head>
<body>
<div id="back">back</div>
<div id="test">
<div id="play">play</div>
<div class="test">
<p>test1</p>
<p>test2</p>
<p>test3</p>
</div>
</div>
</body>
</html>
и js
$(document).ready(function(){
$('#play').click(function(){
alert ('ok');
var this_html = $('#test').clone().attr('innerHTML');
alert(this_html);
$.ajax({
type: "POST",
url: "original.php",
data: 'this_html='+this_html,
success: function(msg){
alert('Data Saved')
},
error: function() {
alert( "Data not Saved" );
}
});
$('#test').empty();
$('<div><p>apend test</p></div>').appendTo('#test');
});
$('#back').click(function(){
alert ('ok');
$('#test').load('ajax/original.html');
});
});
Вот когда <div id="play">play</div> находится внутри контента <div id="test">
который я очищаю, то после возврата в прежнее состояние (back), play перестает работать. Если <div id="play">play</div> вытащить из этого контента то бесперебойно работает. Это возможно исправить, или его нельзя вставлять внутрь очищаемого контента.
Спустя 17 часов, 58 минут, 46 секунд (12.06.2011 - 16:46) SoMeOnE написал(а):
Заработало после использования live()
click не поддерживает получается элементы, создаваемые в будущем?
click не поддерживает получается элементы, создаваемые в будущем?