скрыть Div аяксовый родом из пхп

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем Kauperwood, 24 дек 2010.

  1. Kauperwood

    Kauperwood Гость

    Добрый день друзья! первый мой пост тут, надеюсь что мне ответят, потому что на некоторых других форумах морозяться блин)
    страдаю такой болезнью : у меня стоит jquery и весь контент содержиться в файле сallbacks.php, вот так :
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">callbacks.php</div></div><div class="sp-body"><div class="sp-content">
    Код (PHP):
    <?php
    switch($_GET['action']){
    case '1':
    ?>
    тут <div class="thisss"> контент контент </div>
    <?   
    break;
    if (isset($_GET['action']))
    {
    $to = $_GET['action'];
    if (strpbrk($to, '.?/:*<>')) die('символы ., ?, /, :, *, <, > в запросе запрещены');
    }
    }
    ?>
    И подключен lib.js приблизительно с таким содержанием:
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">lib.js</div></div><div class="sp-body"><div class="sp-content">
    Код (Text):
    $(document).ready(function(){
    var loading = $("#loading");
    var container = $("#ajax");
    var link;
    $("a.ajax-links").click(function(e){

    e.preventDefault();
    container.slideUp(75);
    container.toggle(1500);
    link = $(this).attr("href") + " #content";
    container.load(link, hideLoading);
    container.slideDown(75);
    });
    $("a.ajax-close").click(function(){
    container.slideUp();
    });

    });
    В index.php все хоршо открываеться, очень приятно смотреть результат роботы. Задача положить ссылку "ajax-close" в callbacks.php. Это очень удобно и хотелось бы научиться. Пожалуйста обьясните что и как, почему не роботает через php, что нужно зделать(почитать), правильно ли это(может нет)?
     
  2. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    т.е. саму хтмл разметку ссылки(<a class='ajax-close'>), или тот js код который у вас там?
    Не совсем понял, что вам надо..
     
  3. Kauperwood

    Kauperwood Гость

    Предположим если ссылка "ajax-close" будет находиться в основном файле index.php все будет роботать. Магические ссылки "ajax-links" располагаются среди контента в callbacks.php, стартовая инфа грузиться в основной div id="content" из секции default, в ней находяться "ajax-links" и "ajax-links2" ссылки на дополнительные блоки, кликая на них будет выползать новый div id="ajax" или div id="ajax2" с дополнительным контентом из callbacks.php, также кликая "ajax-close" он будет прятаться, тоесть все функционирует если "ajax-close", "ajax-links","ajax-links2" розмещены в основном блоке div id="content". Перестают ети ссылки роботать если их пытаться розместить и запустить из сгенерированых блоков div id="ajax", div id="ajax2".
    Приведу полный пример:
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">callbacks.php</div></div><div class="sp-body"><div class="sp-content">
    Код (PHP):
    <?php

    switch($_GET['action']){

    case 'people_prise':
    ?>
    <div class="green">
    <h2>others people</h2>
    <p> контент контент </p>
    <a href="index.php?action=work" class="ajax-links2">// не работает (из дополнительно блока) необязательно делать, это для наглядности
    <a class="ajax-close" >закрыть</a>// не работает (из дополнительно блока)
    </div>
    <?
    break;
    case 'people_prise2':
    ?>
    <div class="green">
    <h2>others people</h2>
    <p> контент контент </p>
    <a href="index.php?action=work" class="ajax-links">// не работает (из дополнительно блока) необязательно делать, это для наглядности
    <a class="ajax-close" >закрыть</a>// не работает (из дополнительно блока)
    </div>
    <?
    break;
    default:
    ?>
    <div class="green">
    <h2>Добро пожаловать </h2> <p class="date">day</p>  <span class="clear"></span>
    <a href="index.php?action=people_prise" class="ajax-links">посмотреть первый дополнительный блок</a>// работает , появляеться первое окно
    <a href="index.php?action=people_prise2" class="ajax-links">посмотреть другой первый дополнительный блок</a>// работает , появляеться другое первое окно
    <a href="index.php?action=soderjanie_sayta" class="ajax-links2">посмотреть второй дополнительный блок</a>// работает , появляеться второе окно над первым
    </div>
    <?
    if (isset($_GET['action']))
    {
    $to = $_GET['action'];
    if (strpbrk($to, '.?/:*<>')) die('символы ., ?, /, :, *, <, > в запросе запрещены');
    }
    }
    ?>
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">lib.js</div></div><div class="sp-body"><div class="sp-content">
    Код (Text):
    $(document).ready(function(){

    var container = $("#ajax");
    var container2 = $("#ajax2");
    var link;

    $("a.ajax-links").click(function(e){

    e.preventDefault();
    container.slideUp(75);
    container.toggle(1500);
    link = $(this).attr("href") + " #content";
    container.load(link, hideLoading);
    container.slideDown(75);
    });

    $("a.ajax-links2").click(function(e){

    e.preventDefault();
    container2.slideUp(75);
    container2.toggle(1500);
    link = $(this).attr("href")+ " #content";
    container2.load(link, hideLoading);
    container2.slideDown(75);    
    });

    $("a.ajax-close").click(function(){

    container.slideUp(500);
    });

    $("a.ajax-close2").click(function(){

    container2.slideUp(500);
    });
    });
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">index.php</div></div><div class="sp-body"><div class="sp-content">
    Код (Text):
    <div id="top">
    <a href="index.php?action=people_prise" class="ajax-links">посмотреть первый дополнительный блок</a><!--работает-->
    <a class="ajax-close" >закрыть первый дополнительный блок</a><!--работает-->

    <a href="index.php?action=soderjanie_sayta" class="ajax-links2">посмотреть второй дополнительный блок</a><!--работает-->
    <a class="ajax-close2" >закрыть второй дополнительный блок</a><!--работает-->

    <div id="ajax2"></div>
    <div id="ajax"></div>
    <div id="content">

    <?php include("callbacks.php");?>      

    </div>
    Не понимаю почему так происходит.
     
  4. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    Вместо $().click()
    используйте
    $().live('click',function(){что_вам_там_надо();});
     
  5. Kauperwood

    Kauperwood Гость

    Спасибо - попробовал.
    Код (Text):
    $("a.ajax-close").live('click',function(){
    container.slideUp(500);
    });
    - неполучаеться, перестает закрываться даже в index.php
    Также попробовал назначить .live на все клики - перестает роботать полностью (выводит каждый блок новой страничкой)
     
  6. Kauperwood

    Kauperwood Гость

    Все правильно вы сказали, дело в том что версия 1.2.6 не поддерживала еще метод live(). Поставил 1.4.4, все начало отлично роботать. :lovecodeby:
     
Загрузка...

Поделиться этой страницей