2013-05-05 8 views
0

Im пытается сделать предупреждение jQuery на изменение размера браузера, но его не работает.Обнаруживать при изменении размера браузера не работает

http://jsfiddle.net/5m6yG/

function browser_resize(){ 
    var window_height = $(window).height(); 

    if ((window_height>=800)) { 
     alert('800 or above!'); 
    } 
    if ((window_height<800)) { 
     alert('Under 800!'); 
    } 
} 
$(window).resize(browser_resize); 

Это не работает. Когда я изменяю размер моего браузера, даже более 800, он все еще предупреждает «Under 800!». В чем проблема?

+0

@Dheed взять скобки от 'browser_resize()', и вы правы. Вы хотите вызвать функцию, а не передать ее возвращаемое значение (если оно есть) в '.resize()' – Bojangles

+0

ребята, это должно '$ (window) .resize (browser_resize);', потому что если мы это сделаем: '$ (window) .resize (browser_resize()); 'он вызывает функцию каждый раз, когда я обновляю страницу. – Cole

+0

@ Поверните это '$ (window) .resize (browser_resize);' неправильно, но не для этой цели, потому что мы хотим предоставить метод изменения размера jQuery для адреса функции, чтобы позволить ему использовать метод изменения размера jQuery. это 'a = browser_resize; a();') – ncm

ответ

3

Это потому, что $(window).height(); дает высоту result iframe, не то в браузере.

См. jsFiddle.

function browser_resize(){ 
    $("#height").html($(window).height()); 
} 
$(window).resize(browser_resize); 

Another demo with 300px height

function browser_resize(){ 
    var window_height = $(window).height(); 

    if ((window_height>=300)) { 
     $("#height").html('300 or above!'); 
    } 
    if ((window_height<300)) { 
     $("#height").html('Under 300!'); 
    } 
} 
browser_resize(); 
$(window).resize(browser_resize); 
+0

да и для проверки кода вы должны изменить размер кадра результата. – ncm

+0

Спасибо, сейчас работает! – Cole

1

Для тестирования, я kép высоту 200 здесь и оборотный штраф для меня:

function browser_resize() { 
    var window_height = $(window).height(); 
    console.log(window_height) 
    if (window_height >= 200) { 
     console.log('200 or above!'); 
    } else { 
     console.log('Under 200!'); 
    } 
} 
$(window).resize(browser_resize); 

Вы должны проверить консоль Брауэр для этого.

Кроме того, я думаю, что нет необходимости во втором , если заявление здесь. Вы можете поместить его в часть еще.

+0

, который все еще не работает. Я попытался изменить его на 'else' в прошлом ... по той же проблеме. – Cole

+0

Как сказал @immiso: _ для проверки кода вы должны изменить размер кадра результата_, а не размер браузера, если вы тестируете скрипт. –

+1

YUP , спасибо \ :) – Cole

1

Проверить это Sout Demo http://jsfiddle.net/5m6yG/4/

JQuery

function browser_resize(){ 
    var window_height = $(window).height(); 

    if ((window_height>=500)) { 
     alert('500 or above!'); 
    } 
    else if ((window_height<500)) { 
     alert('Under 500!'); 
    } 
} 
$(window).resize(browser_resize); 
+0

ничего особенного я просто добавил else if statement и протестировал код с меньшим значением n, это сработало, вы проверяете мою демонстрацию .. !! – 2013-05-05 08:20:22

+0

проблема не в 'else' и ее из-за фреймов в jsFiddle, что вы должны изменить размер кадра результата. – ncm

+0

[ссылка] (http://jsfiddle.net/5m6yG/9/) проверьте это сейчас.> !! – 2013-05-05 08:34:20

Смежные вопросы