JQuery не устанавливает атрибуты onmouseover и onmouseout в google chrome?

На событие onload вешается функция которая уменьшает большие изображения на странице.


При наведении курсора мыши картинка должна становится оригинального размера. Если делать так

$(this).attr({
        width: width_resized,
        onmouseover: '$(this).attr("width", ' + width + ');',
        onmouseout: '$(this).attr("width", ' + width_resized + ');'    
});


то в лисе и опере работает отлично, а в хроме устанавливается только ширина.

$(this).attr("onmouseover", '$(this).attr("width", ' + width + ');');


Так тоже не работает.


В чем может заключаться проблема?
  • Вопрос задан
  • 3416 просмотров
Решения вопроса 1
homm
@homm
Проблема в том, что вы пользуетесь нестандартным для jQuery API, которое он не может поддерживать.

Правильно это делать так:
$(this)
    .width(width_resized)
    .mouseover(function () {
        $(this).width(width);
    })
    .mouseout(function() {
        $(this).width(width_resized);
    });
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
nikitammf
@nikitammf
Дело в том что вы устанавливаете атрибут и отсюда некорректная работа в разных браузерах.
Вот в этой статье есть ответ DOM: свойства VS атрибуты.
Ответ написан
Ваш ответ на вопрос

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

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