Эмуляция клика.
Доброй всем ночи. Подскажите как можно эмулировать событие 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, время: 07:33. |