Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Хочу сделать так чтобы нажимаешь по блоку цифра 1 и 2 и 3, говорит правильно, но если нажать на 3 говорит не правильно

Александр Михайлович Ученик (36), на голосовании 3 месяца назад
Хочу сделать так чтобы нажимаешь по блоку цифра 1 и 2 и 3, говорит правильно, но если нажать на 3 или 2 говорит не правильно, но все ровно можно нажать 1 и 2 и 3 будет правильным, мне не нужен javascript, только нужно чистый код JQuery, за такую помощь буду благодарен

 
1

2

3
   .one { background-color: red; width: 100px; line-height: 100px; color: #FFFFFF; font-size: 26px; text-align: center; } 
.two { background-color: green; width: 100px; line-height: 100px; color: #FFFFFF; font-size: 26px; text-align: center; }
.three { background-color: grey; width: 100px; line-height: 100px; color: #FFFFFF; font-size: 26px; text-align: center; }
    $(".one").click(function() { 
$(".two").click(function() {
$(".three").click(function() {
alert("Правильно")
})
})
})

$(".three").click(function() {
$(".three").find(function() {
alert("неправильно")
})
})
Голосование за лучший ответ
Buba Muba Профи (972) 4 месяца назад
$(".one").click(function() {
$(".two").click(function() {
$(".three").click(function() {
alert("Правильно");
});
});
});

$(".two, .three").click(function() {
alert("неправильно");
});
Александр МихайловичУченик (36) 4 месяца назад
Мне надо до конца нажимать 1 до 3, а я нажимаю один два говорит не правильно, все не так надо, наверное ты не правильно сделал
Семён Куликов Мыслитель (5809) 4 месяца назад
Попробуйте так:
 function right() { 
alert("Правильно");
}
function wrong() {
alert("неправильно");
}

$(".one").click(right);
$(".two").click(right);
$(".three").click(wrong);
Инспектор Жопидý Оракул (86397) 3 месяца назад
Чтобы реализовать описанное вами поведение с использованием jQuery, вы можете настроить обработчики событий клика так, чтобы они проверяли последовательность нажатий. Вот пример кода, который соответствует вашим требованиям:

```html
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Проверка последовательности</title>
<style>
.one, .two, .three {
width: 100px;
line-height: 100px;
color: #FFFFFF;
font-size: 26px;
text-align: center;
margin: 10px;
cursor: pointer;
}
.one { background-color: red; }
.two { background-color: green; }
.three { background-color: grey; }
</style>
</head>
<body>

<div class="one">1</div>
<div class="two">2</div>
<div class="three">3</div>

<script src="https:/code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
let sequence = [];

$(".one, .two, .three").click(function() {
let number = $(this).text();
sequence.push(number);

if (sequence.length === 3) {
if (sequence.join('') === '123') {
alert("Правильно");
} else {
alert("Неправильно");
}
sequence = []; // сбрасываем последовательность
}
});
});
</script>

</body>
</html>
```

### Объяснение кода:

- HTML и CSS: Созданы три блока с классами `.one`, `.two`, и `.three`, стилизованные с помощью CSS.
- jQuery:
- Используется массив `sequence` для отслеживания последовательности нажатий.
- При каждом клике на блок, текст блока добавляется в массив `sequence`.
- Если длина массива достигает 3, проверяется, соответствует ли последовательность строке `'123'`.
- Если последовательность правильная, выводится сообщение "Правильно", иначе — "Неправильно".
- После проверки массив `sequence` сбрасывается, чтобы начать отслеживание заново.

Этот код позволяет вам нажимать на блоки в любом порядке, но проверяет, была ли последовательность нажатий именно "1", "2", "3" для вывода "Правильно".
Бинарный Балагур Гений (84504) 3 месяца назад
Вот решение на чистом jQuery, которое соответствует вашим требованиям:

```html
<div class="one">1</div>
<div class="two">2</div>
<div class="three">3</div>
```

```css
.one, .two, .three {
background-color: grey;
width: 100px;
line-height: 100px;
color: #FFFFFF;
font-size: 26px;
text-align: center;
display: inline-block;
margin: 10px;
}

.one.active, .two.active {
background-color: green;
}

.three.active {
background-color: red;
}
```

```javascript
var clicked = [];

$(".one, .two, .three").click(function() {
var num = parseInt($(this).text());

if (clicked.length < 3) {
clicked.push(num);
}

$(this).addClass("active");

if (clicked.length === 3) {
if (clicked[0] === 1 && clicked[1] === 2 && clicked[2] === 3) {
alert("Правильно");
} else {
alert("Неправильно");
$(".one, .two, .three").removeClass("active");
clicked = [];
}
}
});
```

Объяснение:

1. Мы добавляем CSS-классы `.active` для блоков, чтобы изменить их цвет фона при нажатии.
2. Используем массив `clicked`, чтобы хранить нажатые числа.
3. При нажатии на блок:
- Добавляем число в массив `clicked`, если их меньше 3.
- Добавляем класс `.active` к нажатому блоку.
- Если в массиве 3 числа, проверяем, правильная ли последовательность (1, 2, 3). Если да, выводим "Правильно", если нет, выводим "Неправильно" и сбрасываем выделение блоков.

Таким образом, вы можете нажимать на блоки в любом порядке, но только последовательность 1, 2, 3 будет считаться правильной.

Александр Искусственный Интеллект (301506) 3 месяца назад
так ты разберись... то у тебя 1 2 3 правильно, то 3 неправильно...
Похожие вопросы