Эмуляция клика.
Доброй всем ночи. Подскажите как можно эмулировать событие click.
Суть в том что есть ротатор на сайте который переключается только по клику, а нужно что бы еще и по времени мог. вот все что в скрипте находится <script> // DOM Ready $(function() { var current; function rotate() { // This seems like a sucky way to do it, but you can't select by classes because they execute in order if (current == 1) { $("#block-1").removeClass().addClass("active"); $("#block-2").removeClass().addClass("non-active-top"); $("#block-3").removeClass().addClass("non-active-bottom"); } else if (current == 2) { $("#block-1").removeClass().addClass("non-active-bottom"); $("#block-2").removeClass().addClass("active"); $("#block-3").removeClass().addClass("non-active-top"); } else { $("#block-1").removeClass().addClass("non-active-top"); $("#block-2").removeClass().addClass("non-active-bottom"); $("#block-3").removeClass().addClass("active"); } } $("#rotator div").click(function() { // Enables reversing, idea via Andrea Canton: https://twitter.com/andreacanton/sta...54634279849985 current = this.id.substr(6); rotate(); }); }); </script> нужно что бы "$("#rotator div").click(function() " выполнялась каждые 5 секунд. |
<script> // DOM Ready $(function() { var current; function rotate() { // This seems like a sucky way to do it, but you can't select by classes because they execute in order if (current == 1) { $("#block-1").removeClass().addClass("active"); $("#block-2").removeClass().addClass("non-active-top"); $("#block-3").removeClass().addClass("non-active-bottom"); } else if (current == 2) { $("#block-1").removeClass().addClass("non-active-bottom"); $("#block-2").removeClass().addClass("active"); $("#block-3").removeClass().addClass("non-active-top"); } else { $("#block-1").removeClass().addClass("non-active-top"); $("#block-2").removeClass().addClass("non-active-bottom"); $("#block-3").removeClass().addClass("active"); } } var switchNoHandClick = true, auto = false; $("#rotator div").click(function() { if(!auto){switchNoHandClick = false;setTimeout('switchNoHandClick = true',1*60*1000)} // Enables reversing, idea via Andrea Canton: https://twitter.com/andreacanton/sta...54634279849985 current = this.id.substr(6); rotate(); }); function AutoRotate() { if(switchNoHandClick){ auto = true; $("#rotator div").click(); auto = false; } } setInterval (function(){AutoRotate()},5000) </script> |
Не работает.((( Можеть что неправильно делаю. я просто вставил этот код вместо того который я писал выше.
|
pahannew,
Ссылка - есть ? |
почему то не работает не вращение по клику не по времени
|
ссылка на ротатор?
bezen.ru на главно |
pahannew,
Смотрю - подзавис... пытаюсь к вечеру доделать |
pahannew,
Поправил Скрипт: <script type="text/javascript" src="mod_win/fancy/lib/jquery-1.7.2.min.js"></script> <!-- Thought of using jQuery UI's .addClass transitions as fallback (or primary) but doesn't work as well <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.0/jquery-ui.min.js"></script> --> <script> // DOM Ready $(function() { var current=1; function rotate() { // This seems like a sucky way to do it, but you can't select by classes because they execute in order if (current == 1) { $("#block-1").removeClass().addClass("active"); $("#block-2").removeClass().addClass("non-active-top"); $("#block-3").removeClass().addClass("non-active-bottom"); } else if (current == 2) { $("#block-1").removeClass().addClass("non-active-bottom"); $("#block-2").removeClass().addClass("active"); $("#block-3").removeClass().addClass("non-active-top"); } else { $("#block-1").removeClass().addClass("non-active-top"); $("#block-2").removeClass().addClass("non-active-bottom"); $("#block-3").removeClass().addClass("active"); } } var timeoutId; $("#rotator div").click(function() { clearTimeout(timeoutId); switchNoHandClick = false; timeoutId=setTimeout(function(){ switchNoHandClick = true; },23*1000); // Enables reversing, idea via Andrea Canton: https://twitter.com/andreacanton/status/24954634279849985 current = this.id.substr(6); rotate(); }); var switchNoHandClick = true, auto = false; var LengBLK = $("#rotator > div[id^='block-']").length; function AutoRotate() { if(switchNoHandClick){ //alert(">"+current) auto = true; current++; if(current > LengBLK)current=1; rotate(); auto = false; } } setInterval (function(){AutoRotate()},5000) }); </script> Да - Удали такую жа библиотеку ( mod_win/fancy/lib/jquery-1.7.2.min.js) - она ниже, после коммента <!-- Add jQuery library --> ) - иначе слайдшоу - не будет работать (Я её поставил в самый верх скрипта , вместо старой -1.4.4. |
Блин спасибо большое, очень очень выручил, единственное хотел спросить, а как его в другую сторону что бы крутился сделать?
И еще маленький вопросик) Как тебе наш сайт? По виду и работоспособности)) Интересно просто мнение)) |
pahannew,
Еще раз Вот этот скрипт: Ниже установленного скрипта - Уберите со странице - иначе слайдоу галлерея - справо (мелкие квадратики картинок) - не работает <!-- Add jQuery library --> <script type="text/javascript" src="mod_win/fancy/lib/jquery-1.7.2.min.js"></script> Я этот скрипт поставил в перед Вашим скриптом - сейчас два идентичных Нижний нужно убрать! =============================================== Поправил верчение на "Обратку" |
Часовой пояс GMT +3, время: 04:18. |