Функция блокировки прототипа при наведении курсора мыши

#javascript #prototypejs #mouseover #autoscroll

#javascript #prototypejs #наведение курсора мыши #автопрокрутка

Вопрос:

Я получаю эту функцию, которая с интервалом автоматически прокручивает карусель.

 function startInterval() {
if (totSliders > 1) {
interval = setInterval("next()", 7000); }
setInterval("Time()", 1000);
}
window.onload = function {
startInterval()
}
  

Я хочу, чтобы при наведении курсора мыши на некоторые элементы «class ul li» (каждый) функция StartInterval() приводила к очистке, остановке. Короче говоря, при наведении курсора мыши на элементы карусели автоматическая прокрутка останавливается. При выводе мыши вместо этого следует перезапустить ту же функцию (и, следовательно, автоматическую прокрутку).

Я указываю, что setInterval(«Time()», 1000); функция, которая включена в родительскую, не должна учитываться в этих событиях наведения / выключения мыши. Она должна вызываться только при загрузке.

Как я мог бы достичь своей цели? большое спасибо

Ответ №1:

Я просто пытаюсь разобраться в этом, потому что его несколько сложно понять. Насколько я понимаю, вы пытаетесь добавить onmouseover и onmouseout события ко всем class ul li элементам, правильно? Если это так, вот как вы это делаете:

 function pauseInterval(evt) {
   clearInterval(interval);
}

function resumeInterval(evt) {
   interval = setInterval("next()", 7000);
}

var listElements = $$('class').getElementsByTagName('li');
for (var i = 0; i < listElements.length; i  ) {
   listElements[i].on('mouseover', resumeInterval);
   listElements[i].on('mouseout', pauseInterval);
}
  

Я бы определенно проверил это на ошибку, потому что я уверен, что этого не делал.

Комментарии:

1. Пожалуйста, подумайте Event.on о том, чтобы по отдельности не устанавливать наблюдателей для каждого элемента, хотя бы ради устойчивости.

2. Привет, извините за опоздание. Я еще не тестировал ваш код, но собираюсь сделать это в ближайшее время. Нехватка времени. Как я мог бы попробовать код, обновленный с помощью ‘Event.on’?

3. @asnothingelse Я обновил свой ответ, чтобы уже использовать ‘Event.on’, так что все должно быть готово.

4. Большое спасибо Пэту, и спасибо clockworkgeek тоже.. Я протестирую как можно скорее