Перестают работатть событя после load

fantazista

Новичок
Добрый вечер.
Такая проблема случилась. Код показывать не буду. Там много. Врядли кому интересно будет его смотреть. Постараюсь изложить суть.

1. index php генерирует страницу. Вся динамическая. В tpl php вставки присутствуют через обращения в класс.
2. На этой странице при выборе параметров и нажатия кнопки play часть контента стирается и создается новый на jquery. Примерно так
PHP:
$('.game_play').empty();
$('что то ').appendTo('.game_play');
В самом начале этого события оригинальный html который стерся передался на сервер и записался в файл (ajax/original.html).
После этого при нажатии кнопки back происходит возврат к предыдущему состоянию страницы. Вот фрагмент
PHP:
$('.game_play').empty();
$('.game_play').load('ajax/original.html');

Проблема в том, что после возврата кнопка play перестает работать. Почему так происходит?
 

fantazista

Новичок
eval-а нету.
На баттоны повешаны события. При возвращении первичной структуры все события перестают работать. Из за чего это может быть. Вроде бы в обычных тестах (элементарных все работает). А в самом проекте(если это можно так назвать) нет.
 

fantazista

Новичок
Вроде бы понел проблема в чем, но как ее решить, вопрос.
Допустим есть файл index.php
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
PHP:
$(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> вытащить из этого контента то бесперебойно работает. Это возможно исправить, или его нельзя вставлять внутрь очищаемого контента.
 

fantazista

Новичок
A1x
Спасибо. Так заработало.
Значит просто click не поддерживает события подвешанные на элементы которые создаются в будущем...
 
Сверху