Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.04.2016, 13:52
Новичок на форуме
Отправить личное сообщение для de_Karabas Посмотреть профиль Найти все сообщения от de_Karabas
 
Регистрация: 13.04.2016
Сообщений: 3

Как в 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.

Данный момент нужен для решения следующей задачи: необходимо сделать так, чтобы цвет блоков поочередно менялся с определенным интервалом, но при наведении на какой-либо из блоков цвет был только у него, при отводе курсора цвет опять начинал переключаться.
Ответить с цитированием
  #2 (permalink)  
Старый 13.04.2016, 16:54
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

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
Ответить с цитированием
  #3 (permalink)  
Старый 14.04.2016, 11:50
Новичок на форуме
Отправить личное сообщение для de_Karabas Посмотреть профиль Найти все сообщения от de_Karabas
 
Регистрация: 13.04.2016
Сообщений: 3

Спасибо, теперь стало понятно) Просто была мысль пойти от противного и прописать в if, что делать всё то время, когда событие не наступает, но это, видимо, неправильный подход.
Ответить с цитированием
  #4 (permalink)  
Старый 14.04.2016, 12:23
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

de_Karabas,
Кстати, вторая часть вашего вопроса обсуждается в теме
Скрипт, чтобы текстовым блокам давался красный бекграуд каждому по очереди
Ответить с цитированием
  #5 (permalink)  
Старый 14.04.2016, 13:05
Новичок на форуме
Отправить личное сообщение для de_Karabas Посмотреть профиль Найти все сообщения от de_Karabas
 
Регистрация: 13.04.2016
Сообщений: 3

Спасибо, задачу удалось решить через SetInterval, проблема возникла с его остановкой и повторным запуском после остановки, решилось все довольно просто, но это уже только после того, как я узнала, что таким образом задача в принципе и решается.
Ответить с цитированием
  #6 (permalink)  
Старый 14.04.2016, 20:56
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

не надо учить jQuery, не зная JS
Ответить с цитированием
  #7 (permalink)  
Старый 16.04.2016, 16:05
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от DivMan
не надо учить jQuery, не зная JS
чушь, не потому что js знать не надо, а потому что можно юзать любой api, не зная базу, на которой он основывается
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не понимаю JavaScript. Как сделать ожидание события загрузки данных? xintrea AJAX и COMET 7 01.06.2013 17:18
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Как вызвать событие после события определенного в onchange Наталья Events/DOM/Window 2 12.09.2009 13:51
Обработчик события: как делает jquery? Shasoft jQuery 35 22.04.2009 09:41
Как заставить this в обработчике события указывать на объект? Dmitryk Events/DOM/Window 3 16.03.2009 08:45