Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как объединить два условия? (https://javascript.ru/forum/dom-window/77591-kak-obedinit-dva-usloviya.html)

madeas 24.05.2019 13:32

Как объединить два условия?
 
Привет всем!

Собственно, вопрос в заголовке. Я немного в затупке)) Написал скрипт для двух кнопок, но не могу объединить выполнение обоих условий.

Код ниже:

function combo() {
  const a = $(".fn"),
    b = $("#w");

  if (
    a.click(function() {
      a.toggleClass("green active");
    })
  );

  if (
    b.click(function() {
      b.toggleClass("green active");
    })
  );

  $(window).keydown(function(evt) {
    if (evt.which == 87) {
      b.toggleClass("green active");
    }
  });
}
combo();


Подскажите, как объединить, чтобы при выполнении обоих условий срабатывало третье:
$('.key').toggleClass('green');


Предполагаю, что оба условия проще обернуть в две функции и потом другой выводить через if... = true, но нужны ваши мысли на этот счет.
Заранее спасибо.

рони 24.05.2019 13:46

madeas,
:-?

madeas 24.05.2019 14:14

рони, нет идей? (
или настолько просто, что лень писать?))

рони 24.05.2019 14:20

madeas,
я не осилил ваш код, не могу помочь, жду гуру-телепата.

Dilettante_Pro 24.05.2019 14:46

madeas,
А можно макетик html?
И что значит - выполнение обоих условий?
В каком состоянии кнопки a и b?

madeas 24.05.2019 14:49

По идее, должно быть что-то подобное:
function combo() {
  const 
    a = $(".fn"),
    b = $("#w"),
    k = $(".key");

  $(function afoo() {
    if (
      a.click(function() {
        a.toggleClass("green active");
      })
    );
  });

  $(function bfoo() {
    if (
      b.click(function() {
        b.toggleClass("green active");
      })
    );

    $(window).keydown(function(evt) {
      if (evt.which == 87) {
        b.toggleClass("green active");
      }
    });
  });
  
  // if((afoo === true) & (bfoo === true)) {
  //   k.toogleClass( 'green');
  // }
}
combo();


где,
// if((afoo === true) & (bfoo === true)) {
  //   k.toogleClass( 'green');
  // }

результат

рони 24.05.2019 14:50

madeas,
может опишите что хотите сделать словами?

madeas 24.05.2019 14:55

если сводить к результату, то нужно сочетанием: клика по кнопке А и нажатия клавиши Б добавить класс кнопке С

Dilettante_Pro 24.05.2019 15:08

Цитата:

Сообщение от madeas
клика по кнопке А

Клики по кнопке A бывают разные: они могут подключать или отключать классы green active

Совсем не понял это
Цитата:

Сообщение от madeas
нажатия клавиши Б

b = $("#w")

Или это не клавиша, а тоже кнопка?

madeas 24.05.2019 15:10

Dilettante_Pro,

a = $(".fn")
a.click(function() {
        a.toggleClass("green active");
})


b = $("#w");
$(window).keydown(function(evt) {
      if (evt.which == 87) {
        b.toggleClass("green active");
    }
});

это кнопки, но активируются 1 кликом мыши, 2 клавишей `W` с клавиатуры (код 87)


Часовой пояс GMT +3, время: 08:06.