Как внедрить jquery код в шаблон ноды. Не выходит чо то...

Главные вкладки

Аватар пользователя iNFerNo iNFerNo 24 июня 2013 в 12:34

В HTML странице все норм.... разворачивает сворачивает текст....

<div id="container">
        <div id="content">
               
               
               
                <div class="view-source">      
                        <a class="nocookies" href="#">Развернуть текст</a>
                        <div class="hide nocookies">
                                <p class="mytext">     
                                Установленный Вами редирект в конечном итоге приведет к смене главного зеркала. Однако, при его использовании следует понимать, что робот не будет индексировать страницы текущего главного зеркала, а будет переходить по редиректу. В свою очередь, цель редиректа также не будет индексироваться, поскольку является неглавным зеркалом, которое в поиске не участвует. Поэтому, если Вы хотите, чтобы до переклейки зеркал Ваш сайт мог индексироваться по адресу текущего главного зеркала, редирект лучше не устанавливать. Для смены главного зеркала лучше использовать только директиву Host в файлах robots.txt всех зеркал. Этого будет вполне достаточно, при этом Вы избежите проблем с индексированием сайта из-за перенаправления на неглавное зеркало.
                                Обратите внимание, процесс переклейки зеркал любым из указанных способов происходит автоматически и может занимать до 4-6 недель, ускорить его, к сожалению, нельзя.                            
                                </p>
                        </div>
                </div>
   
        </div> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.js" type="text/javascript"></script>
    <script src="http://www.sooource.net/sites/default/files/jquery.cookie.js" type="text/javascript"></script>

        <script type="text/javascript">
                $(document).ready(function(){                                                  
                        if ($.cookie("blockhide")=="Свернуто") {
                                $('.hide.cookies').hide();
                                $('a.cookies').html('Развернуть текст');
                        }       else {
                                $('.hide.cookies').show();
                                $('a.cookies').html('Свернуть текст');      
      }
                        $('.view-source a.cookies').toggle(
                                function(){
          $.cookie("blockhide", "Развернуто");
                                        $(this).siblings('.hide.cookies').stop(false, true).slideDown(500);
                                        $(this).html('Свернуть текст');
                                },
                                function(){
          $.cookie("blockhide", "Свернуто");
                                        $(this).siblings('.hide.cookies').stop(false, true).slideUp(500);
                                        $(this).html('Развернуть текст');
                                }
                        );
     
      $('.hide.nocookies').hide();
                        $('.view-source a.nocookies').toggle(
                                function(){
                                        $(this).siblings('.hide.nocookies').stop(false, true).slideDown(500);
                                        $(this).html('Свернуть текст');
                                },
                                function(){
                                        $(this).siblings('.hide.nocookies').stop(false, true).slideUp(500);
                                        $(this).html('Развернуть текст');
                                }
                        );
                });
        </script>      

</div> 

Комментарии

Аватар пользователя Max_Bargamin Max_Bargamin 24 июня 2013 в 13:35

Что не выходит? - код не появляется или код не выполняется?
Если не выполняется код - тогда
$(document).ready(function(){}) замените на $(function(){});

Аватар пользователя serega111 serega111 24 июня 2013 в 14:30

Опять кто-то решил добавить js прямо в шаблон. Ну есть же для этого модули, есть info файл темы.
почитайте про js api друпала. Нельзя там использовать это сокращение $, пишите jQuery вместо него.

Аватар пользователя Max_Bargamin Max_Bargamin 24 июня 2013 в 15:04

По-хорошему вызывать загрузку jQuery второй раз тоже не правильно. Все нужно делать с помощью модуля jquery_update (в инете полно инфы как его пропатчить для обновление до нужной версии jQuery)
НО! для того чтобы заработало можно эксперементировать и шаблоне

Аватар пользователя iNFerNo iNFerNo 24 июня 2013 в 14:40

да я для теста. сунул. скрипты конечно перенесу... куда надо.

"Max_Bargamin" wrote:
Если не выполняется код - тогда

да не выполняется...

Аватар пользователя iNFerNo iNFerNo 24 июня 2013 в 14:47

не выходит все равно.

даже $ на jQuery

<?php<script type="text/javascript">
        jQuery(document).ready(function(){}){                               
            if (jQuery.cookie("blockhide")=="Свернуто") {
                jQuery('.hide.cookies').hide();
                jQuery('a.cookies').html('Развернуть текст');
            }    else {
                 jQuery('.hide.cookies').show();
                jQuery('a.cookies').html('Свернуть текст');       
      }
            jQuery('.view-source a.cookies').toggle(
                function(){
          jQuery.cookie("blockhide", "Развернуто");
                    jQuery(this).siblings('.hide.cookies').stop(false, true).slideDown(500);
                    jQuery(this).html('Свернуть текст');
                }, 
                function(){
          jQuery.cookie("blockhide", "Свернуто");
                    jQuery(this).siblings('.hide.cookies').stop(false, true).slideUp(500);
                    jQuery(this).html('Развернуть текст');
                }
            );
      
      jQuery('.hide.nocookies').hide();
            jQuery('.view-source a.nocookies').toggle(
                function(){
                    jQuery(this).siblings('.hide.nocookies').stop(false, true).slideDown(500);
                    jQuery(this).html('Свернуть текст');
                }, 
                function(){
                    jQuery(this).siblings('.hide.nocookies').stop(false, true).slideUp(500);
                    jQuery(this).html('Развернуть текст');
                }
            );
        });
    </script>    ?>
Аватар пользователя serega111 serega111 24 июня 2013 в 15:17

Создайте отдельный файл, в нем напишите

(function($){
  Drupal.behaviors.my_behavior = {
    attach: function(context) {
      // ваш код, выполнится так, как будто вы написали $(document).ready(function(){});
    }
  }
})(jQuery);

файл киньте в папку с темой, в info файл добавьте
scritps[] = path/to/script
Путь относительно папки темы.
И будет вам счастье.

Аватар пользователя iNFerNo iNFerNo 24 июня 2013 в 15:38

создал файл blockhide.js закинул в папку js темы

<?php(function($){
  Drupal.behaviors.my_behavior = {
    attach: function(context) {
   
if ($.cookie("blockhide")=="Свернуто") {
                $('.hide.cookies').hide();
                $('a.cookies').html('Развернуть текст');
            }    else {
                 $('.hide.cookies').show();
                $('a.cookies').html('Свернуть текст');       
      }
            $('.view-source a.cookies').toggle(
                function(){
          $.cookie("blockhide", "Развернуто");
                    $(this).siblings('.hide.cookies').stop(false, true).slideDown(500);
                    $(this).html('Свернуть текст');
                }, 
                function(){
          $.cookie("blockhide", "Свернуто");
                    $(this).siblings('.hide.cookies').stop(false, true).slideUp(500);
                    $(this).html('Развернуть текст');
                }
            );
      
      $('.hide.nocookies').hide();
            $('.view-source a.nocookies').toggle(
                function(){
                    $(this).siblings('.hide.nocookies').stop(false, true).slideDown(500);
                    $(this).html('Свернуть текст');
                }, 
                function(){
                    $(this).siblings('.hide.nocookies').stop(false, true).slideUp(500);
                    $(this).html('Развернуть текст');
                }
            );

    }
  }
})(jQuery);?>

Аватар пользователя iNFerNo iNFerNo 24 июня 2013 в 15:47

А подскажите как, переделать код, что бы не скрывался текст (контейнер в котором текст), а в место него другой текст появлялся?

Аватар пользователя iNFerNo iNFerNo 24 июня 2013 в 19:47

"serega111" wrote:
$('.container').replaceWith('new content');

этот код я крутил, но пока не поборол. может применительно к

<div id="container">
        <div id="content">
 
 
 
                <div class="view-source">      
                        <a class="nocookies" href="#">Развернуть текст</a>
                        <div class="hide nocookies">
                                <p class="mytext">     
                                MY TEXT OLD                            
                                </p>
                        </div>

                        <div class="hide_2 nocookies">
                                <p class="mytext">     
                                MY TEXT NEW                            
                                </p>
                        </div>

                </div>
 
        </div> 

        </div> 

добавил в первоначальный код это (на что заменять)

<div class="hide_2 nocookies">
                                <p class="mytext">     
                                MY TEXT NEW                            
                                </p>
                        </div>
Аватар пользователя iNFerNo iNFerNo 25 июня 2013 в 9:01

пока копался в этом коде и получилось так что удалил больше половины кода и на работоспособность это не повлияло.

(function($){
  Drupal.behaviors.my_behavior = {
    attach: function(context) {
               
               
      $('.hide.nocookies').hide();
                        $('.view-source a.nocookies').toggle(
                                function(){
                               
                                    $(this).siblings('.hide.nocookies').stop(false, true).slideDown(500);
                                        $(this).html('Свернуть текст');
                                },
                                function(){
                               
                                        $(this).siblings('.hide.nocookies').stop(false, true).slideUp(500);
                                        $(this).html('Развернуть текст');
                                }
                        );

    }
  }
})(jQuery);

подскажите как текст_1 на странице заменить на др текст_2 и обратно. нажимая на кнопочки показать текст_1, показать текст_2, и так по кругу