2013-11-19 5 views
1

У меня есть этот кусок кода, который действительно работает отлично:JQuery: Window функция изменения размера выдает

JQuery

$(document).ready(function(){ 

    $(".fadeinbg").click(function(){ 
     $("#content").fadeIn(); 
    }); 

    var height = $(window).height(); 
    var width = $(window).width(); 
    $('#content').css({"min-height": height + "px"}); 

    $('#content').css({"width": (width - 200) + "px"}); 
}); 

То, что я пытаюсь достичь сейчас, чтобы обновить JQuery после окно браузера изменить размер, добавив следующую строку в нижней части моего кода: $(window).resize()

JQuery

$(document).ready(function(){ 

    $(".fadeinbg").click(function(){ 
     $("#content").fadeIn(); 
    }); 

    var height = $(window).height(); 
    var width = $(window).width(); 
    $('#content').css({"min-height": height + "px"}); 

    $('#content').css({"width": (width - 200) + "px"}); 

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

... но как-то это вообще не работает. Любые идеи, что я делаю неправильно?

+2

Как это не работает? Остается ли остальная часть рабочего кода работать? Не работает ли код внутри функции обратного вызова ['.resize()') (http://api.jquery.com/resize/)? Вы не указали какой-либо код внутри функции обратного вызова, так что ... ничего не изменилось бы на 'resize', как вы показываете это нам. – ajp15243

+0

Поместите код в функцию, вызовите функцию. – epascarello

+0

Да, остальная часть кода все еще работает, но ширина окна и высота не обновляются после изменения размера браузера. – Tbys

ответ

4

Вы чрезмерно задумываетесь об этом.

$(document).ready(function(){ 

    $(".fadeinbg").click(function(){ 
     $("#content").fadeIn(); 
    }); 

    var setSize = function() { //define a function with the code you want to call  
     var height = $(window).height(); 
     var width = $(window).width(); 
     $('#content').css(
      { 
       "min-height": height + "px", 
       "width": (width - 200) + "px" 
      } 
     ); 
    }; 

    $(window).resize(setSize); //set the function to resize 
    setSize(); //call the function now 
}); 
+0

Спасибо, я попробую. – Tbys

+1

@Tbyas Обратите внимание, что вызов '$ (window) .resize()' просто настраивает функцию 'setSize' для выполнения всякий раз, когда в окне' window' (окне браузера) обнаружено событие «resize». Это не сразу вызывает функцию. После этого вызов 'setSize()' (который полностью не связан с вызовом '.resize()'), будет выполнять эту функцию, поэтому размер будет установлен на загрузку страницы. – ajp15243

+0

Прекрасно работает, спасибо, ребята :) – Tbys

1

Ваша функция очень много работает, попробуйте изменить размер окна и проверить консоль. Он работает нормально. Испытательная остальная часть вашего проекта

$(document).ready(function(){ 
    $(window).resize(function() { 
     console.log("width------:"+$(window).width() +" height------:"+$(window).height()) 
    }); 
}); 
Смежные вопросы