#javascript #jquery #html #css
#javascript #jquery #HTML #css
Вопрос:
Я пытаюсь поменять местами два изображения с помощью jQuery. Используя событие наведения, я попытался:
$("#wlt-DealView .buyButton_new").mouseover(function(e){
$('.buyButton_new').css('background-image','url(../images/compra_mouseOver.png)');
});
$("#wlt-DealView .buyButton_new").mouseout(function(e){
$('.buyButton_new').css('background-image','url(../images/compra_normal.png)');
});
Но изображение не отображается, и после того, как я извлекаю из него мышь, оно запускает второе событие. Он должен обновиться с первым изображением, но этого не происходит.
Вы можете посмотреть здесь: http://107.20.186.103/deals/cuerpon
.
Наведите указатель мыши на кнопку КУПИТЬ.
Комментарии:
1. Возможно, путь к вашим изображениям неверен или изображения не загружены на сервер
2. Подождите, почему вы не делаете это в CSS?
Ответ №1:
Изображение исчезает, потому что jQuery заменяет CSS локально, а не из вашей таблицы стилей, как раньше. Итак, ваш путь необходимо обновить, чтобы отразить путь от вашего HTML-файла до вашего изображения. Если ваш HTML-файл находился в вашей корневой папке, а «изображения» — в папке в этом корне, код был бы таким:
$('.buyButton_new').css('background-image','url(images/compra_mouseOver.png)');
сначала я тоже запутался.
Комментарии:
1. Это решение помогло мне, потому что у меня была точка с запятой в конце инструкции url(). Я удалил точку с запятой, и изображение изменилось правильно.
Ответ №2:
Попробуйте это, код в любом случае лучше:
$("#wlt-DealView .buyButton_new").hover(
function()
{
$(this).css('background-image','url(../images/compra_mouseOver.png)');
},
function()
{
$(this).css('background-image','url(../images/compra_normal.png)');
}
);
Ответ №3:
Если я попытаюсь ввести URLhttp://107.20.186.103/images/compra_mouseOver.png вручную в моем браузере я получаю 404.
http://107.20.186.103/deals/images/compra_mouseOver.png получает странное значение 500…
Я думаю, вы должны подготовить свои файлы изображений, и это сработает. Вы также можете настроить свой код с помощью функции jQuery.hover.
Комментарии:
1. относительный путь работал для css по умолчанию, но после того, как jquery обновил его, он не работал. Мне пришлось это изменить. Спасибо
2.@Iosub Кроме того, может быть, вы хотели бы рассмотреть возможность изменения классов вместо встроенного css? Используя эти:
.addClass()
.removeClass()
.toggleClass()
Изменение класса упростило бы задачу… по крайней мере, на мой взгляд. Кроме того, вы могли бы изменить URL изображения из файла css. Кроме того, поиск в Google, например: «addclass jquery», даст вам указания к jquery api, который предоставит вам больше информации.
Ответ №4:
Синтаксис следующий
$(element).hover(function(){
$(this).css(whatever);
}, function(){
$(this).css(whatever);
});
Ответ №5:
добавьте полный путь к изображению и проверьте
$("#wlt-DealView .buyButton_new").hover(
function()
{
$(this).css('background-image','url(http://107.20.186.103/themes/classic/images/compra_mouseOver.png)');
},
function()
{
$(this).css('background-image','url(http://107.20.186.103/themes/classic/images/compra_normal.png)');
}
);
Комментарии:
1. 1, но вы должны изменить первое изображение на
compra_mouseOver.png
Ответ №6:
Используйте jQuery.hover вместо наведения курсора мыши и вывода курсора мыши