Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Эмуляция клика. (https://javascript.ru/forum/jquery/30736-ehmulyaciya-klika.html)

pahannew 14.08.2012 03:10

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

Deff 14.08.2012 09:54

<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 15.08.2012 02:55

Не работает.((( Можеть что неправильно делаю. я просто вставил этот код вместо того который я писал выше.

Deff 15.08.2012 03:01

pahannew,
Ссылка - есть ?

pahannew 16.08.2012 16:06

почему то не работает не вращение по клику не по времени

pahannew 16.08.2012 16:07

ссылка на ротатор?
bezen.ru на главно

Deff 16.08.2012 18:27

pahannew,
Смотрю - подзавис... пытаюсь к вечеру доделать

Deff 16.08.2012 19:52

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 17.08.2012 15:40

Блин спасибо большое, очень очень выручил, единственное хотел спросить, а как его в другую сторону что бы крутился сделать?

И еще маленький вопросик) Как тебе наш сайт? По виду и работоспособности)) Интересно просто мнение))

Deff 17.08.2012 16:12

pahannew,
Еще раз
Вот этот скрипт:
Ниже установленного скрипта - Уберите со странице - иначе слайдоу галлерея - справо (мелкие квадратики картинок) - не работает
<!-- Add jQuery library -->
	<script type="text/javascript" src="mod_win/fancy/lib/jquery-1.7.2.min.js"></script>


Я этот скрипт поставил в перед Вашим скриптом - сейчас два идентичных
Нижний нужно убрать!
===============================================
Поправил верчение на "Обратку"


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