vachunya
@vachunya
Начинающий верстальщик

Как создать цикл событий в jQuery?

Ребят и снова здраствуйте, на этот раз простая задача, нужно сделать цикл при наведении на элемент .sokol чтобы менялся его атрибут title, многое перепробовал, понимаю что вопрос простой на 1 минуту, ну не могу сам разобраться, как в мой гавнокод вставить цикл??
Пока наворотил такую кучу херни больше похожую на русский рэп нежели на код:

$(document).ready(function() {  // 1 строка
	var atr = ['Убери руки от моего коробля!!', 'Ты об этом пожалеешь', 'Врот мне ноги, ты тупой да?']
	if(typeof(i) == 'undefined' || i > atr.length) i = 0;
    $(".sokol").mouseover(function (){  // 2 строка
    $(this).attr('title', atr[i]); //3 строка
    });
    $(".sokol").mouseout(function (){
    $(this).attr('title', atr[i + 1]);
    });
});
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
tsepen
@tsepen
Фронтенд разработчик React & Redux
Вот так
$(document).ready(function() {  
  var atr = ['Убери руки от моего коробля!!', 'Ты об этом пожалеешь', 'Врот мне ноги, ты тупой да?']
  var i = 0
  $('.sokol').attr('title', atr[i]);
  
  $(".sokol").mouseover(function (){
    i = i + 2 > atr.length ? 0 : i + 1
    $(this).attr('title', atr[i]);
  });
  
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега jQuery
Учим yii: https://youtu.be/-WRMlGHLgRg
У Вас i взялась из воздуха, поэтому она всегда == 'undefined'
Так что смело можно
if(typeof(i) == 'undefined' || i > atr.length) i = 0;

выкинуть и оставить
var i = 0;

Вам точно нужен mouseover, а не mouseenter или вообще hover?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы