Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как обнулить переменные после завершения скрипта, как очистить значение переменных? 
:(
    Опции темы
QRS
Дата 6.7.2010, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 30.12.2008

Репутация: нет
Всего: нет



Появилась необходимость самому написать скрипт который при клике по ссылке плавно из нее выведет на середину экрана блок с необходимым содержимым. а при клике на нем - уберет его обратно.

Написал следующий скрипт (jQuery (jquery-1.4.2.min.js))


Код

<script>
$(document).ready(function (){
    parth = Math.round($(window).height()/2); // Получаю округленную половину высоты окна браузера
    partw = Math.round($(window).width()/2); // Получаю округленную половину ширины окна браузера
    offset = $(".show").offset(); // Получаю координаты .show
    offsl = offset.left + 100; // Прибавляю к координатам слева 100px (половина ширины блока .one)
    offst = offset.top + 100; // Прибавляю к координатам сверху 100px (половина высоты блока .one)
    margintop = parth - offst; // Получаю верхний отступ (для .one)
    marginleft = partw - offsl; // Получаю левый отступ (для .one)
    
    $('.one').height($(".show").height()) ; // задаю исходную высоту для .one равную высоте .show    
    $('.one').width($(".show").width()) ; // задаю исходную ширину для .one равную ширине .show        
    $(".show").click(function(){ // по событию click объект .one становится видемым, плавно увеличивется и меняет прозрачность, положение на margintop b marginleft
        $('.one').show().animate({width: "200px", height: "200px", 'top':margintop, 'left':marginleft, opacity: 1}, 400);
    }); 
    
    $(".one").click(function(){ // по событию click
        width = $(".show").width(); // присваиваю переменной значение ширины .show
                            height = $(".show").height(); // присваиваю переменной значение высоты .show
 
        $('.one').animate({'width':width, 'height':height, top: "0px", left: "0px",  opacity: 0.1}, 400, function(){ // объект .one плавно уменьшается до width и height, меняет прозрачность, возвращается на исходное положение
            $('.one').hide(); // скрывает .one
                                          } 
                            
                             );
        return false
    });
});

</script>



Все работает. Но если после выполнения скрипта (когда .one вновь скрыт)  я изменю размер окна браузера и заново кликну по .show - то блок .one выезжает не на новый центр окна, а на тот что был при первом запуске скрипта.
Если страницу обновить - тогда все нормально, но мне нужно чтобы центр находился при каждом запуске скрипта без обновления страницы.
Как это сделать? 
Путем логических рассуждений понял что нужно как то обнулить все переменные, но указания типа parth = 0; или parth = '';  после выполнения скрипта результата не дают. 
Помогите пожалуйста кто знает. Заранее спасибо


Это сообщение отредактировал(а) QRS - 7.7.2010, 00:07
PM MAIL   Вверх
bars80080
Дата 6.7.2010, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



вот всё что у тебя в $(document).ready(); засунь в отдельную функцию
далее вызывай её из этого $(document).ready(function() { myfunc(); });
и точно также вставь в нужный элемент управления
<input type="button" onclick="myfunc();" />
PM MAIL WWW   Вверх
QRS
Дата 6.7.2010, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 30.12.2008

Репутация: нет
Всего: нет



Спасибо, но к сожалению этот вариант мне не подойдет.
Мне нужно чтобы этот скрипт весь работал не по событию <input type="button" onclick="myfunc();" />
а при определенном событии работает определенная часть скрипта. суть в том что у меня при новом обращении к скрипту значение переменных не вычисляется заново.
вот как бы этого избежать не обновляя страницу
PM MAIL   Вверх
bars80080
Дата 6.7.2010, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



запиши вызов myfunc() на любое другое нужное тебе событие. какая разница, какое оно? onclick или по таймауту?
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0821 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.