Cómo configuro el desbordamiento del cuerpo oculto cuando una clase llama

Quiero configurar el desbordamiento del cuerpo como oculto cuando se utilizó la clase “emergente”. Y llamó a esta clase por JavaScript. Como mi CSS no funciona.
¿Puedo tener la etiqueta “body” anidada en mi clase como esta?

#CSS .popup { display: table; height: 100% !important; table-layout: fixed; width: 100%; position: fixed; top: 0px; bottom: 0px; z-index: 400; body { overflow: hidden!important; } } 

Mi ejemplo es cuando hace clic en las fotos de Facebook, aparecerá en pantalla completa y se desplazará bloqueado. Gracias todas las ayudas

Yo lo llamo así.

 Click to view larger 

JavaScript

 function getphoto(inputString) { $('body').css('overflow', 'hidden'); if(inputString.length == 0||false) { $('#suggestions3').fadeOut(); // Hide the suggestions box }else{ //alert(inputString); $.post("p/photo.php", {queryString: ""+inputString+""}, function(data) { // Do an AJAX call $('#suggestions3').fadeIn(); // Show the suggestions box $('#suggestions3').html(data); // Fill the suggestions box }); } } 

inputString es una identificación con foto. En photo.php devuelve contenido html

¿Puedo tener la etiqueta “body” anidada en mi clase como esta? No.

Cuando se llama a la clase popup , use jQuery .css() esta manera:

 $("body").css("overflow", "hidden"); 

Más información: http://api.jquery.com/css/

No puedes usar CSS esa manera. Sin embargo, puedes tener una clase llamada overflow-hidden en tu css que se sienta así:

 .overflow-hidden{ overflow:hidden !important; } 

Luego en jQuery:

 $('.popup').click(function(){ $('body').addClass('overflow-hidden'); }); 

También puedes usar

 toggleClass() 

y

 removeClass() 

por lo que puede addClass() cuando quiera asignarle la clase css y luego removeClass() una vez que el elemento emergente haya desaparecido.

No, no puedes usar css así

 if($('.popup').is(':visible')){ $("body").css('overflow', 'hidden'); } 

o

 $('.popup').click(function(){ $("body").css('overflow', 'hidden'); }); 

En el cierre de su ventana emergente o condición

  $("body").css('overflow', 'yourchoice'); 

Puedes usar jQuery así:

 $('body').filter(function(){ return $(this).find('.popup').is(':visible') }).css('overflow','hidden'); 

No puedes usar css nesteds como en tu ejemplo.

Puedes usar addClass y removeClass en tu jquery

 .bodyOverflow() { overflow:hidden; } 

Y en jQuery

 $('.popup').on('click', function(){ $('body').addClass('bodyOverflow'); }); 

¿Algo como esto?

DEMO http://jsfiddle.net/pwzaT/

JQUERY

 $('button#show').on('click', function(){ $('.popup').fadeIn(300); $('body').css('overflow','hidden'); }); $('button#hide').on('click', function(){ $('.popup').fadeOut(300); $('body').css('overflow','auto'); });