Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос про вызов события onClick (https://javascript.ru/forum/misc/2438-vopros-pro-vyzov-sobytiya-onclick.html)

skyfish 25.12.2008 14:00

Вопрос про вызов события onClick
 
Есть кнопка. к ней привязано событие onClick.
Как грамотно сделать так, что если пользователь не счелкнул сам по кнопке, через к примеру 15 секунд, событие OnClick само вызвалось.

Заранее благодарю за помощь новичку!

Octane 25.12.2008 15:22

Легче вызвать через 15 секунд функцию, которая срабатывает по событию onclick.
window.onload = function() {
   setTimeout(функция_срабатывающая_по_onclick, 15000);
};

если конечно объект-событие не нужен

skyfish 26.12.2008 00:45

Там все на jQuery сделано, в котором к сожаления я пока вообще никаках не соображаю. и функция onClick задается следующим образом в коде библиотеке
jQuery(".next",p).click(function() {
....
....
....
            }


И помоему в этом примере речь идет как раз о создании объекта-события, который создается я так понимаю в этом участке кода

<script language="javascript" type="text/javascript">
   jQuery.noConflict();
   jQuery(document).ready(function(){
        jQuery(".computers_technology").accessNews({
        newsHeadline: "",
        newsSpeed: "slow"
    });
	});
   </script>


как же в данной ситуации запустить по таймауту это событие?

Tror 26.12.2008 10:13

jQuery(".next",p).click(function() {
....
....
....
            }


если это из твоего кода, то вызвать событие можно
setTimeout(function(){jQuery(".next",p).trigger("click");}, 15000);

будет вызвано через 15 секунд

skyfish 26.12.2008 10:37

Цитата:

Сообщение от Tror (Сообщение 10049)
jQuery(".next",p).click(function() {
....
....
....
            }


если это из твоего кода, то вызвать событие можно
setTimeout(function(){jQuery(".next",p).trigger("click");}, 15000);

будет вызвано через 15 секунд

Привмер из моего кода. но что то этот код не работает.
Вод как добавляется кнопка на которой висит событие onClick():
<a href="" class="next"><img src="/slider/next.gif" width="24" height="24" alt="Next" title="Next" env="images" /></a>


То есть в коде скрипта ищется класс next и на него вешается. я так понимаю

skyfish 26.12.2008 10:49

А не работает потому что, структура кода такая.
jQuery.fn.accessNews = function(settings) {
...
     aNewsSlider.init(settings,this)
......
};

var aNewsSlider = {
    ....
init: function(s,p) {
jQuery(".next",p).click(function() {
//и как мне сие чудо вызвать
}
}


}



И вот так это все создается
<script language="javascript" type="text/javascript">
   jQuery.noConflict();
   jQuery(document).ready(function(){
        jQuery(".computers_technology").accessNews({
        newsHeadline: "",
        newsSpeed: "slow"
    });
    });
   </script>

Tror 26.12.2008 11:12

сорри, в первый раз ступил. я не заметил что переменная p тебе недоступна. Такая запись
jQuery(".next",p)
означает "выбрать все элементы с классом "next" в контексте p". Если не указывать контекст, то в качестве контекста будет использоваться объект document.

все конечно зависит от того что тебе нужно, но попробуй сделать так
init: function(s,p) {
var imgs = jQuery(".next",p);
imgs.click(function() {
//и как мне сие чудо вызвать
}

setTimeout(function(){imgs.trigger("click");}, 15000);
}

skyfish 26.12.2008 13:00

Tror, Клево. спасибо. А вот если еще раз захочу крутнутнуть галлерею и пишу
setTimeout(function(){imgs.trigger("click");}, 15000);
setTimeout(function(){imgs.trigger("click");}, 15000);

то крутиться всего один раз. вместо двух. как это обойти? Заранее благодарю

Kolyaj 26.12.2008 13:30

setTimeout != sleep

Tror 26.12.2008 13:50

прочитай про setInterval

skyfish 26.12.2008 15:30

всем спасибо. Еще одно препятствие какое не получается обойти
jQuery.fn.accessNews = function(settings) {
...
     aNewsSlider.init(settings,this)
......
};
 
var aNewsSlider = {
    ....
init: function(s,p) {
img=jQuery(".next",p);
img.click(function() {
//и как мне сие чудо вызвать
}
}
 
setInterval(function(){img.trigger("click");nextJob();}, 5000);

// И периодический вызов последней функции,должен продолжаться до тех пора, пока getElementbyId('rborder')<getElementbyId('total'). Никак не могу решить.
 
}


Периодический вызов функции, которая в setInterval,должен продолжаться до тех пора, пока getElementbyId('rborder')<getElementbyId('total').

Никак не могу решить.

Стараюсь решить вопрос сам, но из-за нехватки базовых знаний не получается.

Tror 26.12.2008 15:42

jQuery.fn.accessNews = function(settings) {
...
     aNewsSlider.init(settings,this)
......
};
 
var aNewsSlider = {
    ....
init: function(s,p) {
img=jQuery(".next",p);
img.click(function() {
//и как мне сие чудо вызвать
}
setTimeout(DoWork, 15000);

}
DoWork = function()
{
    img.trigger("click");

    var value1 = Number(getElementbyId('rborder').value);
    var value2 = Number(getElementbyId('total').value);
    if (value1 && value2 && value1 < value1 < value2)
    {
         setTimeout(DoWork, 15000);
    }
}

}

x-yuri 27.12.2008 19:12

а откуда возьмется img?
Цитата:

img.trigger("click");
я бы сделал так, раз уж есть jQuery
var timerId = setInterval(function() {

    var rborder = jQuery('#rborder');
    var total = jQuery('#total');
    if( rborder.val() < total.val() ) {
        clearInterval( timerId );
        return;
    }
    jQuery('.computers_technology').click();
}, 15000);


Часовой пояс GMT +3, время: 19:29.