Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > jQuery. Работа с подгруженной информацией.


Автор: DiMoN_TD 27.3.2008, 15:39
Дано:

Обычная html-ка с таблицей. Таблица разделена на две части, левая и правая.

Итак в странице index.html  имеем следующий код:

Код

<table border="1" width="100%">
    <tr>
        <td id="ring" width="50" height="50">&nbsp;</td>
        <td id="head" width="50" height="50">&nbsp;</td>
        
        <td rowspan="2">&nbsp;</td>
        
    </tr>
    <tr>
        <td id="leg" width="50" height="50">&nbsp;</td>
        <td id="arm" width="50" height="50">&nbsp;</td>
    </tr>
</table>


 При клике на ячейки из правой части в левой подгружается та или иная страница, название которой индентично названию id нажатой ячейки.

Код

<script language="javascript" src="ajax/jquery-1.2.3.js"></script>
<script  type="text/javascript">

$(document).ready(function(){
    $("td").click(function(){
        id_name = this.id;
        $("td").each(function(){
            if (!this.id){
                $(this).load("cloth/"+id_name+".php");
            }
        });
        $("td").each(function(){
        });
    });
    $("a").click(function(){
        alert(this.id);
    });
});

</script>



Одна из подгружаемых страниц - head.php:

Код

<?
    include("/home/pereodevalka/www/blocks/db.php");
    
    $result = mysql_query("SELECT * FROM cloth WHERE type='Head");
?>

<table cellpadding="0" cellspacing="0" border="1">
    <?
        while ($myrow = mysql_fetch_array($result)){
            echo "<tr>
                    <td><a href='#' id='".$myrow["id"]."'>".$myrow["name"]."</a></td>
                      </tr>
            ";
        }
    ?>
</table>


Проблема:

Как видно из скрипта, при нажатии на ссылку, мы должны получить его id, но проблема в том, что из подгружаемого контента id высвечиваться не хочет. Хотя, если сделать принудительно в странице index.html ссылочку с каким-нибудь id и нажать на неё, тогда на экран выводится id-шка ссылки. А из подгружаемой страницы ничего выводиться не хочет. 

Вопрос: Как можно с этим справиться? Как получить id из подгружаемой страницы? Заранее благодарю. Вы не раз помогали мне, прошу и в этот раз не обделить вниманием! =)

Автор: ksnk 27.3.2008, 17:44
С большой вероятностью, здесь поможет http://docs.jquery.com/Plugins/livequery. соответственно,
Код

 $("td").livequery('click',function(){
        id_name = this.id;
...


Если пользоваться этим плагином не желания, то вот примерное описание ситуации.

Вообще говоря, обработчики события ставяться в событии document.ready, один раз, на все существующие в этот момент ячейки. Чтобы их поставить на подгруженные ячейки, обработчики нужно доставить отдельно, к примеру так ...load("cloth/"+id_name+".php",function(){ установить обработчик click на новые ячейки})


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)