Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Jquery, убрать кнопку
 
 автор: Лена   (03.03.2011 в 10:50)   письмо автору
 
 

Честно говоря, в Jquery не сильна, писала, как могу.
Есть такой код:

<script>
            $(document).ready(function(){
                $(".toggle_container").hide();

                $("h4.trigger").click(function(){
                    $(this).next().slideToggle("slow");
                    return false;
                });
                $("button").click(function(){
                    $(this).prev().slideToggle("slow");
                    return false;
                });
            });
</script>

<body>

<h4 class="trigger"><a href="#">Посмотреть текст</a></h4>
<div class="toggle_container">
    <div class="block">
        <h4>Заголовок</h4>
        И здесь весь наш контент <br />
    </div>
</div>
<button>Скрыть текст</button>



При нажатии на ссылку "Посмотреть текст", текст появляется. При нажатии на кнопку "Скрыть текст", он исчезает.
Мне надо кнопку "Скрыть текст" спрятать внутрь блока с текстом. Делаю так:


<script>
            $(document).ready(function(){
                $(".toggle_container").hide();

                $("h4.trigger").click(function(){
                    $(this).next().slideToggle("slow");
                    return false;
                });
                $("button").click(function(){
                    $(this).prev().slideToggle("slow");
                    return false;
                });
            });
</script>

<body>

<h4 class="trigger"><a href="#">Посмотреть текст</a></h4>
<div class="toggle_container">
    <div class="block">
        <h4>Заголовок</h4>
        И здесь весь наш контент <br />
    </div>
<button>Скрыть текст</button>
</div>



При первом нажатии на "Посмотреть текст" и "Скрыть текст" все нормально.
Дальше я нажимаю на "Посмотреть текст" - и у меня текст не выезжает, кнопка, которая должна остаться, исчезает.

Скажите, пожалуйста, в чем моя ошибка.

  Ответить  
 
 автор: cheops   (03.03.2011 в 11:45)   письмо автору
 
   для: Лена   (03.03.2011 в 10:50)
 

>Дальше я нажимаю на "Посмотреть текст" - и у меня текст не выезжает, кнопка, которая должна
>остаться, исчезает.
Не очень понятно, как же она должна остаться, если кнопка расположена в блоке <div class="toggle_container"> ? Она всегда будет исчезать, при нажатии на "Посмотреть текст"

PS При использовании библиотеки версии 1.4.2 и Opera - текст всегда уезжает и выезжает без сбоев.

  Ответить  
 
 автор: Лена   (03.03.2011 в 12:50)   письмо автору
 
   для: cheops   (03.03.2011 в 11:45)
 

>PS При использовании библиотеки версии 1.4.2 и Opera - текст всегда уезжает и выезжает без сбоев.

Выезжает и уезжает нормально при первом разе, вы меня немного не так поняли.
Во второй раз текст не открывается, появляется только кнопка. Жму на кнопку - кнопка исчезает.
Уже помогли, но и вам спасибо.

  Ответить  
 
 автор: AlexSol   (03.03.2011 в 12:06)   письмо автору
 
   для: Лена   (03.03.2011 в 10:50)
 

$("button").click(function(){ 
                    $(this).parent().slideToggle("slow"); 
                    return false; 
                }); 

  Ответить  
 
 автор: Лена   (03.03.2011 в 12:53)   письмо автору
 
   для: AlexSol   (03.03.2011 в 12:06)
 

Спасибо огромное, я бы полдня в справочниках копалась, искала бы, что подойдет.
Есть еще один момент.
Когда текст во вложенном блоке большой и я жму на кнопку "Скрыть текст", текст свертывается и я уже нахожусь не на том месте, откуда читала.
Можно как-то сделать, чтобы при нажатии на кнопку "Скрыть текст" страница прокручивалась как бы назад, к тому месту, где я нажимала на ссылку "Посмотреть текст"?

  Ответить  
 
 автор: AlexSol   (03.03.2011 в 13:25)   письмо автору
 
   для: Лена   (03.03.2011 в 12:53)
 


var top;

 $(document).ready(function(){ 
                $(".toggle_container").hide(); 

                $("h4.trigger").click(function(){ 
                    $(this).next().slideToggle("slow"); 
top = $(this).offset().top;
                    return false; 
                }); 
                $("button").click(function(){ 
                    $(this).parent().slideToggle("slow"); 
 $('html, body').stop().animate({scrollTop: top }, 1000);
                    return false; 
                }); 
            }); 

  Ответить  
 
 автор: Лена   (03.03.2011 в 14:57)   письмо автору
 
   для: AlexSol   (03.03.2011 в 13:25)
 

Спасибо. Получается мы засекаем верхнюю текущую позицию элемента, а после прокручиваем окно к этой позиции.
В ИЕ и Mozilla работает нормально. В опере же перелистывается не к ссылке, а в самый вверх окна.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования