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

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

  1. Kauperwood

    Kauperwood Гость

    Репутация:
    0
    Добрый день друзья! первый мой пост тут, надеюсь что мне ответят, потому что на некоторых других форумах морозяться блин)
    страдаю такой болезнью : у меня стоит 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 Больной Компом Детектед

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

    Kauperwood Гость

    Репутация:
    0
    Предположим если ссылка "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 Больной Компом Детектед

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

    Kauperwood Гость

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

    Kauperwood Гость

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

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