2017-02-14 4 views
0
var windowWidth = $(window).width();  
function mobileResponsiveCheck(){ 
    if(windowWidth >= 768){ 
     box3Responsiveness(); 
    }else if(windowWidth < 768){ 
     null; 
    } 
} 

$(window).resize(function(){ 
    mobileResponsiveCheck(); 
}); 
mobileResponsiveCheck(); 

Так что я хочу запускать функцию mobileResponsiveCheck() каждый раз, когда пользователь изменяет размер, а также при перезагрузке. При изменении размера, если окно становится меньше 768 пикселей, оно не должно ничего делать. Но это происходит только тогда, когда я перезагружаю его после того, как он меньше 768 пикселей. То, что я хочу, это box3Responsiveness(), когда пользователь изменяет размер и получает ниже 768px без перезагрузки.Событие изменения окна

+0

Вы можете упростить 'иначе, если (WindowWidth <768)' просто 'else' – Blazemonger

+0

^или просто удалить, что условие полностью, как' null' избыточна код –

+0

Непонятно * как * вы останавливаете 'box3Responsiveness()' от запуска. Мы не можем сказать по вашему образцу кода. – Blazemonger

ответ

3

Вы определили windowWidth по всему миру. Переменная устанавливается один раз, а именно, когда скрипт запускается. Однако значение не изменяется при изменении размера, потому что вы не говорите об этом. Чтобы изменить это, принесите объявление переменной внутри вашей функции. Таким образом, он всегда будет меняться при необходимости.

function mobileResponsiveCheck(){ 
    var windowWidth = $(window).width(); 
    if(windowWidth >= 768){ 
     box3Responsiveness(); 
    } 
} 

$(window).resize(function(){ 
    mobileResponsiveCheck(); 
}); 
mobileResponsiveCheck(); 
+0

Это сработало, и это не так. box3Responsiveness() запускается при повышении размера, но не останавливается при сокращении. Я что-то упускаю? –

+0

В вашем исходном коде у вас не было ничего, что остановило 'box3Responsiveness'. У вас было избыточное предложение else-if с «null» в нем, которое ничего не делает. Без содержимого функции 'box3Responsiveness' мы не можем вам помочь. Однако это выходит за рамки этого вопроса. Отметьте ответ как правильный и создайте новую тему. –

0
mobileResponsiveCheck() { 
    if (window.innerWidth >= 768){ 
    box3Responsiveness(); 
    } 
} 

window.addEventListener('resize', mobileResponsiveCheck); 
mobileResponsiveCheck(); 
0

Попробуйте

$(window).resize(function() { 
     setTimeout(function() { 
      mobileResponsiveCheck(); 
     }) 
    }) 

function mobileResponsiveCheck(){ 
    var windowWidth = $(window).width(); 
    if(windowWidth >= 768){ 
     box3Responsiveness(); 
    }else if(windowWidth < 768){ 
     null; 
    } 
} 
Смежные вопросы