#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 тоже.. Я протестирую как можно скорее