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

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
<?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 не поддерживает получается элементы, создаваемые в будущем?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.