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


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