Яваскрипт, запуск таймера по клику

Тема в разделе "Другие языки", создана пользователем Pashka Korchagin, 7 авг 2014.

Модераторы: Цукер
  1. Pashka Korchagin

    Pashka Korchagin Постоялец

    Регистр.:
    23 дек 2009
    Сообщения:
    110
    Симпатии:
    7
    Ребята, кто знаком с яваскриптом, помогите решить одну маленькую проблему. Нужно чтобы таймер запускался по кнопке открытия спойлера, сейчас запускается при входе на страницу.

    Открытие спойлера по клику так оформлено:
    (нужно чтобы одновременно запускался таймер, сейчас таймер запускается при входе на страницу)

    $(document).ready(function(e) { $('#video').click(function () { $('.player').slideToggle('slow'); return false; }); });

    Таймер:

    $(function(){
    var advm_timer = 20;
    var advm_height = $('#advm_preload').parent().height();
    var advm_width = $('#advm_preload').parent().width();
    $('#advm_preload,#advm_close,.advm_loader,#advm_preload > div').css('display','block');
    $('#advm_preload').parent().find('object').append('<param name="wmode" value="opaque">');
    $('#advm_preload').parent().css('position', 'relative');
    $('#advm_preload').css({'position':'absolute'});
    $("#advm_timer").html(advm_timer);
    } и т.д. другая функция...

    Обычно сам до всего дохожу, но сейчас нет ни времени на изучение языка, не денег на фрилансеров.
    Очень выручите. Спасибо!
     
  2. mff4

    mff4 Постоялец

    Регистр.:
    2 апр 2008
    Сообщения:
    112
    Симпатии:
    15
    Вас интересует JS или jQuery?
     
  3. Pashka Korchagin

    Pashka Korchagin Постоялец

    Регистр.:
    23 дек 2009
    Сообщения:
    110
    Симпатии:
    7
    javascript

    <script type="text/javascript">
    </script>
     
  4. Шумадан

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

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    Код:
    function startTimer()
    {
    var advm_timer = 20;
    var advm_height = $('#advm_preload').parent().height();
    var advm_width = $('#advm_preload').parent().width();
    $('#advm_preload,#advm_close,.advm_loader,#advm_preload > div').css('display','block');
    $('#advm_preload').parent().find('object').append('<param name="wmode" value="opaque">');
    $('#advm_preload').parent().css('position', 'relative');
    $('#advm_preload').css({'position':'absolute'});
    $("#advm_timer").html(advm_timer);
    } 
    Код:
    $(document).ready(function(e) { $('#video').click(function () { $('.player').slideToggle('slow'); startTimer(); return false; }); });
     
    Джуга, Ctrogan, SilverGhost и ещё 1-му нравится это.
  5. Pashka Korchagin

    Pashka Korchagin Постоялец

    Регистр.:
    23 дек 2009
    Сообщения:
    110
    Симпатии:
    7
    Код:
    $(document).ready(function(e) { $('#video').click(function () { $('.player').slideToggle('slow'); startTimer(); return false; }); });
    Шумадан, благодарю за ответ. К сожалению, не работает так. Таймер запускается сразу же после открытия странички. Как у него автостарт отрубить?

    Код:
    <a href="#" id="video" class="c-news">Видео в помощь</a>
    Код:
    <script type="text/javascript">
    $(document).ready(function(e) { $('#video').click(function () { $('.player').slideToggle('slow'); startTimer(); return false; }); });
    </script>
    Код:
    <script type="text/javascript">
    
    $(function(){
    
    function startTimer()
    { (так не работает)
    
    $(function startTimer()
    { (так запускает таймер сразу же по открытию страницы)
    
    var advm_timer = 20;
    var advm_height = $('#advm_preload').parent().height();
    var advm_width = $('#advm_preload').parent().width();
    $('#advm_preload,#advm_close,.advm_loader,#advm_preload > div').css('display','block');
    $('#advm_preload').parent().find('object').append('<param name="wmode" value="opaque">');
    $('#advm_preload').parent().css('position', 'relative');
    $('#advm_preload').css({'position':'absolute', 'top':'0', 'left':'0', 'width':'600px', 'height':'350px'});
    $("#advm_timer").html(advm_timer);
    function advmPreload(){
    advm_timer = advm_timer-1;
    $("#advm_timer").html(advm_timer);
    if(advm_timer>0){
    setTimeout(function(){ advmPreload(); },1000);
    }else{
    $("#advm_preload").hide();
    }
    }
    setTimeout(function(){ advmPreload(); },1000);
    $('#advm_close, #advm_preload').click(function(){
    $('#advm_preload').hide();
    });
    });
    </script>
     
    Последнее редактирование модератором: 7 авг 2014
    Шумадан нравится это.
  6. Шумадан

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

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    зачем вы пишете
    Код:
    $(function(){
    я же вам дал код готовый, только вставить
     
    Джуга, Ctrogan и SilverGhost нравится это.
  7. Pashka Korchagin

    Pashka Korchagin Постоялец

    Регистр.:
    23 дек 2009
    Сообщения:
    110
    Симпатии:
    7
    Шумадан, извините. Это был метод научного тыка.:)

    В конце скрипта не убрал лишнюю скобку, стал "изобретать".

    Работает в таком виде:

    <script type="text/javascript">
    function startTimer()
    {

    var advm_timer = 20;
    var advm_height = $('#advm_preload').parent().height();
    var advm_width = $('#advm_preload').parent().width();
    $('#advm_preload,#advm_close,.advm_loader,#advm_preload > div').css('display','block');
    $('#advm_preload').parent().find('object').append('<param name="wmode" value="opaque">');
    $('#advm_preload').parent().css('position', 'relative');
    $('#advm_preload').css({'position':'absolute', 'top':'0', 'left':'0', 'width':'990px', 'height':'555px'});
    $("#advm_timer").html(advm_timer);
    function advmPreload(){
    advm_timer = advm_timer-1;
    $("#advm_timer").html(advm_timer);
    if(advm_timer>0){
    setTimeout(function(){ advmPreload(); },1000);
    }else{
    $("#advm_preload").hide();
    }
    }
    setTimeout(function(){ advmPreload(); },1000);
    $('#advm_close, #advm_preload').click(function(){
    $('#advm_preload').hide();
    });
    };
    </script>

    Правильно?
     
  8. Шумадан

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

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    ну если работает - значит правильно?
     
    Джуга, Ctrogan, SilverGhost и ещё 1-му нравится это.
  9. igro

    igro Создатель

    Регистр.:
    16 дек 2012
    Сообщения:
    20
    Симпатии:
    9
    А чем вам неугодило
    Код:
    onclick="startTimer()"
    (для спойлера) ? Просто оберните код таймера в функцию, как и указали выше.
    Код:
    function startTimer()
    {
    // Таймер
    }
     
    Ctrogan и Шумадан нравится это.
  10. Шумадан

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

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    там и есть онклик, просто он навешивается через jquery
     
    Джуга и SilverGhost нравится это.