Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.10.2018, 12:56
Аватар для kvizor34
Аспирант
Отправить личное сообщение для kvizor34 Посмотреть профиль Найти все сообщения от kvizor34
 
Регистрация: 08.02.2018
Сообщений: 50

Не срабатывает событие в React
componentDidMount(){
console.log('mount!');
window.matchMedia('(max-width: 1400px)').addListener(function(){
            console.log('resize!');
        })
}


Первое сообщение отображается, а второе, при ресайзе, не срабатывает ни в одном браузере(( уже пару часов бьюсь помогите пожалуйста
Ответить с цитированием
  #2 (permalink)  
Старый 22.10.2018, 13:15
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

window.matchMedia('(max-width: 1400px)').addEventListener("change", event => {
    console.log("resize!");
});
Ответить с цитированием
  #3 (permalink)  
Старый 22.10.2018, 13:36
Аватар для kvizor34
Аспирант
Отправить личное сообщение для kvizor34 Посмотреть профиль Найти все сообщения от kvizor34
 
Регистрация: 08.02.2018
Сообщений: 50

Сообщение от Malleys Посмотреть сообщение
window.matchMedia('(max-width: 1400px)').addEventListener("change", event => {
    console.log("resize!");
});
всё равно не срабатывает...
Ответить с цитированием
  #4 (permalink)  
Старый 22.10.2018, 13:47
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сложно предположить, почему так происходит. Тот первый код, который вы привели, тоже на самом деле работает. Вы можете привести дополнительно окружающий код? Также укажите, какой браузер используете (например, в консоли браузера выполните navigator.userAgent)
Ответить с цитированием
  #5 (permalink)  
Старый 22.10.2018, 13:51
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Вот такой тестовый пример вполне работает
<style>
.someClass { border:1px solid red;}
</style>
<div id="div">123</div>
<script>
function setup_for_width(mql) {
        div.textContent = mql.matches;
	if (mql.matches) {
		div.classList.add("someClass");
	} else {
		div.classList.remove("someClass");
	}
}

var mql = window.matchMedia("screen and (min-width: 768px)"); 

mql.addListener(setup_for_width);

setup_for_width(mql);</script>

Последний раз редактировалось Dilettante_Pro, 22.10.2018 в 13:57.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не срабатывает событие laliev Учебные материалы 3 28.09.2015 11:23
Не срабатывает событие mouseup в chrome Евгений_Лазаренко Events/DOM/Window 6 28.01.2015 12:06
Вопрос по backbone - не срабатывает событие vuler Общие вопросы Javascript 4 28.12.2014 21:20
Событие на теге input срабатывает несколько раз hrundel Events/DOM/Window 3 15.12.2013 14:49
Некорректно срабатывает событие DZHETIGAPA Events/DOM/Window 4 12.05.2011 22:28