Как объединить два условия?
Привет всем!
Собственно, вопрос в заголовке. Я немного в затупке)) Написал скрипт для двух кнопок, но не могу объединить выполнение обоих условий. Код ниже: 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, но нужны ваши мысли на этот счет. Заранее спасибо. |
madeas,
:-? |
рони, нет идей? (
или настолько просто, что лень писать?)) |
madeas,
я не осилил ваш код, не могу помочь, жду гуру-телепата. |
madeas,
А можно макетик html? И что значит - выполнение обоих условий? В каком состоянии кнопки a и b? |
По идее, должно быть что-то подобное:
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'); // } результат |
madeas,
может опишите что хотите сделать словами? |
если сводить к результату, то нужно сочетанием: клика по кнопке А и нажатия клавиши Б добавить класс кнопке С
|
Цитата:
Совсем не понял это Цитата:
Или это не клавиша, а тоже кнопка? |
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) |
Цитата:
https://codepen.io/andrejsharapov/pen/pmdNKW к сожалению collab mode только для про ( функция в самом низу |
madeas,
var a = $(".fn"),b = $("#w"), afoo, bfoo; a.click(function() { afoo = a.toggleClass("green active").is(".green"); fn() }) ; $(window).keydown(function(evt) { if (evt.which == 87) { bfoo = b.toggleClass("green active").is(".green"); } fn() }); function fn() { if((afoo === true) && (bfoo === true)) { // k.toogleClass( 'green'); } } |
<style> .green { background-color:green; } .active { border:1px solid red;} </style> <button class="fn" >A</button> <button id="w">B</button> <button class="key">C</button> <script src="https://code.jquery.com/jquery-latest.min.js"></script> <script> var a = $(".fn"), b = $("#w"), k = $(".key"); a.click(function() { a.toggleClass("green active"); testStatus(); }); b.click(function() { b.toggleClass("green active"); testStatus(); }); function testStatus() { if (a.hasClass('active') && b.hasClass('active')) { k.addClass('green'); } else { k.removeClass('green'); } } </script> |
спасибо. немного подправил, сработало
|
Часовой пояс GMT +3, время: 00:34. |