Как в if/else прописать наступление события?
Доброго времени суток!
JS только осваиваю, но обычно сама нахожу решения своих вопросов. Но в данном случае перепробовала все, что смогла найти и придумать, потому обращаюсь за помощью. Есть такой скрипт $( document ).ready(function(){ if ( $('.zero').on('click') ) { $('.zero').css('background-color', 'green') } }); Элемент становится зеленым без всякого клика. Если же написать так $( document ).ready(function(){ if ( $('.zero').on('click') == true ) { $('.zero').css('background-color', 'green') } }); то вообще ничего не происходит. Что нужно написать, чтобы добиться необходимого результата и почему не работает в такой форме? В целом также хотелось бы узнать, как событие в условии должно выглядеть на чистом JS. Данный момент нужен для решения следующей задачи: необходимо сделать так, чтобы цвет блоков поочередно менялся с определенным интервалом, но при наведении на какой-либо из блоков цвет был только у него, при отводе курсора цвет опять начинал переключаться. |
de_Karabas,
Условия никакие не нужны - наступление события и есть условие выполнения обработчика вариант на jQuery <style> .zero {position: absolute; height: 100px; width: 100px; border: 1px solid black } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> <script> $( document ).ready(function(){ $('.zero').on('click', function() { $(this).css('background-color', 'green') }); }); </script> <div class="zero"><div> вариант на чистом JS <style> .zero {position: absolute; height: 100px; width: 100px; border: 1px solid black } </style> <script> function changeColor(elem) { elem.style.background='green'; } </script> <div class="zero" onclick="changeColor(this);"><div> Можно также при помощи addEventListener() https://learn.javascript.ru/introduction-browser-events |
Спасибо, теперь стало понятно) Просто была мысль пойти от противного и прописать в if, что делать всё то время, когда событие не наступает, но это, видимо, неправильный подход.
|
de_Karabas,
Кстати, вторая часть вашего вопроса обсуждается в теме http://javascript.ru/forum/jquery/62...-ocheredi.html |
Спасибо, задачу удалось решить через SetInterval, проблема возникла с его остановкой и повторным запуском после остановки, решилось все довольно просто, но это уже только после того, как я узнала, что таким образом задача в принципе и решается.
|
не надо учить jQuery, не зная JS
|
Цитата:
|
Часовой пояс GMT +3, время: 09:04. |