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

Pashka Korchagin

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

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

$(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);
} и т.д. другая функция...

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

mff4

Постоялец
Регистрация
2 Апр 2008
Сообщения
112
Реакции
23
Вас интересует JS или jQuery?
 

Шумадан

Хабарра!!11
Регистрация
6 Фев 2008
Сообщения
1.746
Реакции
2.208
Код:
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; }); });
 

Pashka Korchagin

Постоялец
Регистрация
23 Дек 2009
Сообщения
113
Реакции
8
Код:
$(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>
 
Последнее редактирование модератором:

Pashka Korchagin

Постоялец
Регистрация
23 Дек 2009
Сообщения
113
Реакции
8
зачем вы пишете
Код:
$(function(){

я же вам дал код готовый, только вставить

Шумадан, извините. Это был метод научного тыка.:)

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

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

<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>

Правильно?
 

Шумадан

Хабарра!!11
Регистрация
6 Фев 2008
Сообщения
1.746
Реакции
2.208
Шумадан, извините. Это был метод научного тыка.:)

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

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

<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>

Правильно?
ну если работает - значит правильно?
 

igro

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

Шумадан

Хабарра!!11
Регистрация
6 Фев 2008
Сообщения
1.746
Реакции
2.208
А чем вам неугодило
Код:
onclick="startTimer()"
(для спойлера) ? Просто оберните код таймера в функцию, как и указали выше.
Код:
function startTimer()
{
// Таймер
}
там и есть онклик, просто он навешивается через jquery
 
Сверху