Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
4 / 4 / 2
Регистрация: 10.08.2015
Сообщений: 162

2 события onclick

08.09.2015, 12:14. Показов 2712. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Начал изучать события в javascript и столкнулся с такой проблемой - на одну картинку надо повесить 2 события, но чтоб они срабатывали поочередно (первое событие при 1 нажатии на картинку, 2 событие при повторном)
написал 2 функции, но они срабатывают одновременно при нажатии на картинку.
Задумка такая: есть условное меню которое состоит к из 9 картинок. Для перехода по картинкам от 1 до 9 имеются стрелочки влево и вправо, между ними 3 квадрата. Каждый квадрат символизирует 3 картинки меню (ниже выложу скриншоты ) Начальное положение первый квадрат синий и цифры 123. (скрин №1)Нажимаю на стрелочку вправо и 2 квадрат стал синим, а первый опять черным и поменялись цифры с 123 на 456, все отлично, (скрин №2)но дальше надо еще раз нажать на стрелочку вправо и по идеи 3 квадрат должен стати синим, второй черным, но они оба при первом нажатии на стрелку становятся синими. (скрин №3)
Пожалуйста помогите советом! Спасибо!

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!DOCTYPE html>
<html>
    <head>
        <title>JS events</title>
        <meta charset="utf-8">
        <link rel="stylesheet" href="js_events.css">
    </head>
    <body>
        <img src="img/arrow_left.png" alt="img" class="arrow" onclick="arrowLeftClick(this)">
        
        <img src="img/blue_square.png" alt="img" class="black_squre" id="blue_square_1">
        
        <img src="img/black_square.png" alt="img" class="black_squre" id="black_square_2">
        
        <img src="img/black_square.png" alt="img" class="black_squre" id="black_square_3">
        
        <img src="img/arrow_right.png" alt="img" class="arrow" onclick="arrowRightClick(this); arrowRightClick_2(this)">
        <br>
        <img src="img/Untitled-1.png" alt="img" id="untitled_1">
        <img src="img/Untitled-2.png" alt="img" id="untitled_2">
        <img src="img/Untitled-3.png" alt="img" id="untitled_3">
        
        <script src="scripts.js"></script>
    </body>
</html>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function arrowLeftClick(){
   document.getElementById("untitled_1").src = "img/Untitled-1.png"
    document.getElementById("untitled_2").src = "img/Untitled-2.png"
    document.getElementById("untitled_3").src = "img/Untitled-3.png"
    document.getElementById("black_square_2").src = "img/black_square.png"
      document.getElementById("blue_square_1").src = "img/blue_square.png"
}
 
function arrowRightClick(){
    document.getElementById("untitled_1").src = "img/Untitled-4.png"
    document.getElementById("untitled_2").src = "img/Untitled-5.png"
    document.getElementById("untitled_3").src = "img/Untitled-6.png"
    document.getElementById("black_square_2").src = "img/blue_square.png"
    document.getElementById("blue_square_1").src = "img/black_square.png"
}
 
function arrowRightClick_2(){
    document.getElementById("black_square_3").src = "img/blue_square.png"
    
}
CSS
1
2
3
4
5
6
7
8
9
.black_squre {
    width: 100px;
    
}
 
 
.arrow:hover {
    cursor: pointer;
}
Миниатюры
2 события onclick   2 события onclick   2 события onclick  

0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.09.2015, 12:14
Ответы с готовыми решениями:

События onclick по ссылке
Доброго времени суток Вопрос следующий - как при повторном нажатии на ссылку закрыть окно. Данный код демонстрирует открытие окна при...

События onclick по ссылке (getElementById)
Добрый вечер. Есть таблица с кнопками от 0 до 9. Каким образом выводить во вновь созданный параграф значение нажатой кнопки? Например...

Как остановить обработчик события onclick?
Типо тест на знание английского.Есть словарь,нужно чтобы по клику выводилось следующее слово.Всё работает,но не знаю как остановить после...

8
не Администратор ^_^
 Аватар для Unick
988 / 223 / 23
Регистрация: 03.05.2009
Сообщений: 1,493
Записей в блоге: 1
08.09.2015, 15:12
Цитата Сообщение от a4t_ech Посмотреть сообщение
Пожалуйста помогите советом!
сделай переменную которая отображает текущий статус, и в зависимости от статуса меняй квадраты (или функции) как хочешь
0
4 / 4 / 2
Регистрация: 10.08.2015
Сообщений: 162
08.09.2015, 23:20  [ТС]
такая мысль была, но проблема с синтаксисом(( можно пример кода?
0
не Администратор ^_^
 Аватар для Unick
988 / 223 / 23
Регистрация: 03.05.2009
Сообщений: 1,493
Записей в блоге: 1
09.09.2015, 00:24
Цитата Сообщение от a4t_ech Посмотреть сообщение
такая мысль была, но проблема с синтаксисом((
выложи код куда-ниб сюда
https://jsfiddle.net/
или опиши проблему

Цитата Сообщение от a4t_ech Посмотреть сообщение
можно пример кода?
Цитата Сообщение от a4t_ech Посмотреть сообщение
первое событие при 1 нажатии на картинку, 2 событие при повторном
JavaScript
1
2
3
4
5
6
7
8
9
10
// удаляешь arrowRightClick(this); arrowRightClick_2(this)
var isOneClick = false;
function onClickImg(){
 if (isOneClick){
  arrowRightClick(this);
  isOneClick = true;
 } else { 
  arrowRightClick_2(this);
 }
}
0
4 / 4 / 2
Регистрация: 10.08.2015
Сообщений: 162
09.09.2015, 11:41  [ТС]
Код поправил, проход работает вправо и влево, но только 1 раз, на 2 раз при нажатии на стрелку вправо сразу перескакивает на 3 квадрат((( также еще 1 баг, если 1 раз нажал вправо потом влево, то влево получается перейти со 2 раза, на первый клин нет реакции...надо еще вводить переменные?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
var isOneClickLeft = true;
function onClickImgLeft () {
    if(isOneClickLeft){
        arrowLeftClick_2(this);
        isOneClickLeft = false;
    }else{
        arrowLeftClick(this);
    }
}
function arrowLeftClick() {
    document.getElementById("untitled_1").src = "img/Untitled-1.png";
    document.getElementById("untitled_2").src = "img/Untitled-2.png";
    document.getElementById("untitled_3").src = "img/Untitled-3.png";
    document.getElementById("black_square_2").src = "img/black_square.png";
    document.getElementById("blue_square_1").src = "img/blue_square.png";
}
 
function arrowLeftClick_2(){
    document.getElementById("untitled_1").src = "img/Untitled-4.png";
    document.getElementById("untitled_2").src = "img/Untitled-5.png";
    document.getElementById("untitled_3").src = "img/Untitled-6.png";
    document.getElementById("black_square_2").src = "img/blue_square.png";
    document.getElementById("black_square_3").src = "img/black_square.png";
}
 
var isOneClickRight = true;
function onClickImgRight(){
 if (isOneClickRight){
  arrowRightClick(this);
  isOneClickRight = false;
 } else { 
  arrowRightClick_2(this);
 }
}
function arrowRightClick() {
    document.getElementById("untitled_1").src = "img/Untitled-4.png";
    document.getElementById("untitled_2").src = "img/Untitled-5.png";
    document.getElementById("untitled_3").src = "img/Untitled-6.png";
    document.getElementById("black_square_2").src = "img/blue_square.png";
    document.getElementById("blue_square_1").src = "img/black_square.png";
}
function arrowRightClick_2() {
    document.getElementById("black_square_3").src = "img/blue_square.png";
    document.getElementById("untitled_1").src = "img/Untitled-7.png";
    document.getElementById("untitled_2").src = "img/Untitled-8.png";
    document.getElementById("untitled_3").src = "img/Untitled-9.png";
    document.getElementById("black_square_2").src = "img/black_square.png"
}
0
не Администратор ^_^
 Аватар для Unick
988 / 223 / 23
Регистрация: 03.05.2009
Сообщений: 1,493
Записей в блоге: 1
09.09.2015, 20:02
Лучший ответ Сообщение было отмечено a4t_ech как решение

Решение

Цитата Сообщение от a4t_ech Посмотреть сообщение
JavaScript
1
2
3
4
5
6
7
8
9
10
var isOneClickLeft = true;
function onClickImgLeft () {
if(isOneClickLeft){
 arrowLeftClick_2(this);
 isOneClickLeft = false;
 }else{
arrowLeftClick(this);
        isOneClickLeft = true;
}
}
если функции должны чередоваться, то делай как-ниб так
Цитата Сообщение от a4t_ech Посмотреть сообщение
также еще 1 баг, если 1 раз нажал вправо потом влево, то влево получается перейти со 2 раза, на первый клин нет реакции...надо еще вводить переменные?
в данный момент это нормальное поведение)) введи тогда не true false, а статусы
мол первый раз влево, 11, второй раз влево 12, а потом ты переключился на право 21, второй раз на право 22
ну я образно.
1
4 / 4 / 2
Регистрация: 10.08.2015
Сообщений: 162
10.09.2015, 01:42  [ТС]
Вот что получилось...полный переход в обе стороны работает правильно сколько угодно раз, а из центрального квадрата только после второго нажатия причем что влево что вправо...var count = 1; это глобальная переменная которая действует для обоих функций, а можно задать каждой функции свою собственную переменную?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
var count = 1;
function onClickImgLeft() {
    if (count === 2) {
       arrowLeftClick_2(this);
        count--;
    } else if (count === 1) {
        arrowLeftClick(this);
    }
}
function arrowLeftClick() {
    document.getElementById("untitled_1").src = "img/Untitled-1.png";
    document.getElementById("untitled_2").src = "img/Untitled-2.png";
    document.getElementById("untitled_3").src = "img/Untitled-3.png";
    document.getElementById("black_square_2").src = "img/black_square.png";
    document.getElementById("blue_square_1").src = "img/blue_square.png";
}
 
function arrowLeftClick_2() {
    document.getElementById("untitled_1").src = "img/Untitled-4.png";
    document.getElementById("untitled_2").src = "img/Untitled-5.png";
    document.getElementById("untitled_3").src = "img/Untitled-6.png";
    document.getElementById("black_square_2").src = "img/blue_square.png";
    document.getElementById("black_square_3").src = "img/black_square.png";
}
 
 
function onClickImgRight() {
    if (count === 1){
       arrowRightClick(this);
        count++;
    } else if (count === 2) {
        arrowRightClick_2(this);
    } 
}
 
function arrowRightClick() {
    document.getElementById("untitled_1").src = "img/Untitled-4.png";
    document.getElementById("untitled_2").src = "img/Untitled-5.png";
    document.getElementById("untitled_3").src = "img/Untitled-6.png";
    document.getElementById("black_square_2").src = "img/blue_square.png";
    document.getElementById("blue_square_1").src = "img/black_square.png";
}
function arrowRightClick_2() {
    document.getElementById("black_square_3").src = "img/blue_square.png";
    document.getElementById("untitled_1").src = "img/Untitled-7.png";
    document.getElementById("untitled_2").src = "img/Untitled-8.png";
    document.getElementById("untitled_3").src = "img/Untitled-9.png";
    document.getElementById("black_square_2").src = "img/black_square.png";
}
0
не Администратор ^_^
 Аватар для Unick
988 / 223 / 23
Регистрация: 03.05.2009
Сообщений: 1,493
Записей в блоге: 1
11.09.2015, 00:43
a4t_ech, сделай особый статус для центрального квадрата (наверное только это и надо)
0
4 / 4 / 2
Регистрация: 10.08.2015
Сообщений: 162
11.09.2015, 17:06  [ТС]
Исправил код! Обошелся без особого статуса и все работает как надо! Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.09.2015, 17:06
Помогаю со студенческими работами здесь

Button.onclick - как повесить на кнопку последовательные события?
Привет, есть вот такой код. Тут 5 блоков (стили в отдельном css файле). Задача, поменять цвет каждого блока (div) с лева на право при...

Как повешать на div простой обработчик события onClick
Привет всем. Я пытаюсь сделать так. Вот у меня есть блок div и внутри него текст: &lt;body&gt; &lt;div id=&quot;my_block&quot;...

onclick
как зделать, чтобы с помощю onclick, можно было перейти на другую страницу? что-то типа onclick=&quot;testing_test.php&quot;? ...

Onclick и onsubmit
Помогите разобраться. Есть форма и есть кнопка. В чем будет разница для кнопки в onclick и onsubmit? Onckick сработает понятное дело...

Error onClick
подскажите пожалуйста есть ли тут ошибка и как справиться ? после онклик кроме жа ничего не работает и не видно &lt;script...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru