Я работаю над некоторой jquery-игрой, у меня есть 4 divs в дизайне 2x2, они должны выбрать 1 вариант и подтвердить с помощью другой кнопки. Дело в том, что у меня есть эффект зависания, добавляющий класс, который меняет фон с низкой непрозрачностью и эффект щелчка, устанавливающий фон с более высокой непрозрачностью, для div 2, 3 и 4 он работает хорошо, я навешиваю и меняю цвет с непрозрачностью 0.3, и когда я перемещаю мышь, он возвращается к белому, и когда я нажимаю, он меняет фон на 0,4, и зависание больше не влияет на них, однако это не работает для первого div: div изменяет цвет фона на hover, но когда я нажимаю, он сохраняет цвет наведения, и когда я выхожу, я вижу цвет кликов, и каждый раз, когда я нахожу его, он снова меняет цвет наведения и так далее.как удалить наведите указатель мыши на
Почему это происходит только на div 1?
Код:
//hover effects
$(".respuesta1,.respuesta2,.respuesta3,.respuesta4").hover(
function() {
$(this).addClass("respuestahover");
},
function() {
$(this).removeClass("respuestahover");
});
//on click function for div1
$(".respuesta1").on("click", function() {
//if it hasnt been clicked, toogle class and change var to true
if (prendido1 == false) {
$(this).toggleClass("respuesta1b");
prendido1 = true;
//if any of the other divs are clicked by the time you are clicking unclicked 1, turn them off
if (prendido2 == true) {
$(".respuesta2").toggleClass("respuesta2b");
prendido2 = false;
}
if (prendido3 == true) {
$(".respuesta3").toggleClass("respuesta3b");
prendido3 = false;
}
if (prendido4 == true) {
$(".respuesta4").toggleClass("respuesta4b");
prendido4 = false;
}
//if is already clicked, turn off and change var to false
} else {
$(this).toggleClass("respuesta1b");
prendido1 = false;
}
});
Последняя часть повторяется для каждого сНу "respuesta2", "respuesta3", и т.д ..
Любая идея?
* EDIT *
Я пытался очистить код, чтобы сделать jsFiddle, и я думаю, что я получил его на работу:
Я просто оставлю код там, если кто-то заинтересован, помните, что код неполирован и ему нужны дополнительные обобщения.
EDIT 2
После некоторого тестирования я действительно нашел проблему:
если я изменить порядок моей CSS clases приложение сходит с ума:
Это один правильный, с зависанием в первую очередь
.respuestahover{
background-color:#f00;
opacity:0.2;
}
.respuestab{
background-color:#f00;
opacity:0.5;
}
Это неправильное изображение, зависание второй:
.respuestab{
background-color:#f00;
opacity:0.5;
}
.respuestahover{
background-color:#f00;
opacity:0.2;
}
Я не совсем уверен, почему это так, но я рад, что понял это.
вы можете создать скрипку для этого .. это может помочь решение вашей проблемы легко ... спасибо – maverickosama92
Ваш отпечаток делает ваш код трудным для чтения. Можете ли вы отформатировать его, чтобы на глазах стало легче? – Samo