Problema al recargar div con AJAX

Iniciado por javier_r2, 30 Julio 2015, 08:21 AM

0 Miembros y 1 Visitante están viendo este tema.

MinusFour

Cita de: javier_r2 en 30 Agosto 2015, 15:05 PM
Entiendo lo que comentas. Pero si fuera problema del estilo entonces no aparecería la barra al mover la ventana. Fíjate el las capturas como enseño que cuando recargo el div y luego muevo el navegador con el ratón desde la barra de arriba sale la barra de desplazamiento. Y es más cuando sale y vuelvo a recargar el div y esta vez el alto es menor, el scroll sigue manteniéndome el tamaño anterior y por lo tanto baja más de lo que tiene que bajar. Y claro si vuelvo a mover la ventana del navegador con la barra superior se adapta correctamente al tamaño de nuevo.

No entiendo este razonamiento. Tienes un error de presentación, tu javascript no hace nada con la presentación de tu HTML. Lo único que haces es usar innerHTML para agregar el texto. Ahora tu dices: "Si fuera un error de presentacion pasaria en los otros navegadores". Y esto simplemente no es cierto. Varias veces he tenido estilos que funcionan en todos los navegadores menos en uno.

javier_r2

#11
Lo que quería decir es que si fuera un error de estilos, al mover la ventana no aparecería como por arte de magía. De todas maneras he conseguido hoy solventarlo forzando al body a esconder y luego volver a mostrar la propiedad overflow. Al final el código ajax ha quedado de la siguiente manera.

function carga_preview_temp(){
$("document").ready(function(){
var select_filter_fecha = $("#select_filter_fecha").val();
var filter_excl = $('#tags_exlc').tagsinput('items');
var filter_cont = $('#tags_cont').tagsinput('items');

$.ajax({
url: ("carga_prev_tmp.php"),
data: {select_filter_fecha: select_filter_fecha,filter_excl: filter_excl,filter_cont: filter_cont},
type: 'post',

beforeSend : function(){
$('#btn_carga_preview_temp').hide();
$("#div_prev_lista_temp").hide();
$('#loader-carga-pre-temp').show();
document.body.style.overflow = "hidden";
},

success: function(data){
if(data != "NO HAY MEDIOS"){
$("#div_prev_lista_temp").html(data);
$("#div_prev_lista_temp").show();
$('#loader-carga-pre-temp').hide();
$('#btn_carga_preview_temp').show();
document.body.style.overflow = "auto";
}else{
$('#loader-carga-pre-temp').hide();
$('#btn_carga_preview_temp').show();
$('#wizard').stepy('step', 2);
new PNotify({
title: 'NO HAY MEDIOS',
text: 'No hay medios cargados en el almacén. Seleccione primero un medio para poder cargar la vista previa.',
styling: 'fontawesome'
});
}

},

error : function(jqXHR, status, error){
       alert('Disculpe, existió un problema. Vuelva a intentarlo más tarde. Si el problema persiste, póngase en contacto con el servicio técnico.');
       location.href = "new_list.php";
   }
});

});
}


En beforeSend le digo que me oculte el overflow y cuando entra en success le digo que sea automático. De momento me funciona correctamente todo en todos los navegadores. No se si será lo correcto, pero si a alguien le ocurre pues aquí puede tener esa solución.

Un saludo y gracias a todos los que habéis participado!