Поправить спойлер jq

Тема в разделе "JavaScript", создана пользователем SocMaster, 29 май 2013.

Модераторы: ZiX
  1. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
    Есть спойлер на jq
    Идеально работает но, когда спойлеров несколько и открываешь 1, открываются все :((
    Пробовал подставить ид поста к див классу, не помогает.
    Помогите пожалуйста
    Вот скрипт
    Код:
    <script type="text/javascript">
    var $jq = jQuery.noConflict();
        function ys(){
        $jq('._c').slideDown(500);
        $jq('.v').attr('onclick','ys2();');
        }
        function ys2(){
        $jq('._c').slideUp(500);
        $jq('.v').attr('onclick','ys();');
        }
     
     
    </script>
    HTML:
    <div class="thanks_yekki" id="spoiler">
    <div class="v" onclick="ys();">Сказали спасибо: <b>11</b>
    <a id="spasibo" href="">Сказать спасибо!</a>
    </div><div class="_c"></div></div>
    Код:
    <style type="text/css"> 
    #spoiler {border:1px solid #ccc;} 
    .v {background:#f7f7f7; padding:8px;cursor:pointer; } 
    #spasibo {float:right;} 
    ._c {background:#fff;padding:8px;border-top:1px dotted #ccc;display:none;} 
    </style>
     
  2. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.723
    Симпатии:
    2.100
    а вы можете генерировать уникальный id для див элемента?

    если да то, тогда можно сделать
    Код:
    <script type="text/javascript">
    var $jq = jQuery.noConflict();
        function ys(){
        $jq('#ololo').slideDown(500);
        }
        function ys2(){
        $jq('#ololo').slideUp(500);
        }
     
     
    </script>
     
  3. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
    Сделал так
    Код:
                <script type="text/javascript">
    var $jq = jQuery.noConflict();
        function ys(){
        $jq(\'#'.$pid.'\').slideDown(500);
        }
        function ys2(){
        $jq(\'#'.$pid.'\').slideUp(500);
        }
     
    </script>
    Циферки подставляем верно
    Записал див так
    Код:
    <div id="'.$pid.'" class="_c"  >тут моя переменная</div>
    Но не пашет нифига, консоль пустая ошибок нет
    Вот тут демка http://one-st.ru/thread-1453-1-1.html
     
  4. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.723
    Симпатии:
    2.100
    вы ещё забыли добавить строки где привязывается клик, хотя странно что по айди оно не сработало, чтоб долго не разбираться попробуйте оставить оригинальный код, только использовать не айди а css+айди для названия стиля. как для элэмента так и для кода.

    тоесть
    а потом
    PHP:
    <script type="text/javascript">
     
    var 
    $jq jQuery.noConflict();
     
    function 
    ys()
    {
    $jq('._c.$pid.').slideDown(500);
    $jq('.v').attr('onclick','ys2();');
    }
     
    function 
    ys2()
    {
    $jq('._c.$pid.').slideUp(500);
    $jq('.v').attr('onclick','ys();');
    }
    </script>
     
  5. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
  6. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.723
    Симпатии:
    2.100
    давайте в личку фтп, поэксперементируем
     
  7. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
    Поставил на демке http://s.one-st.ru работает о.о о.о
    Как так?

    Ладно придумаю что то на обычном js
    Все таки двиг не хочет никак дружить с квери наверное