Este es todo mi script para mi CHAT, cuando hago un
Cita: setInterval(traerMensajes(),2000)
Este no es llamado cada 2 segundos.... y nose porque, pero al presionar el boton y llamo a esa funcion este si es llamado, ah tambien me pasalo mismo con el
setTimeOut, este no se ejecuta pasado x Segundos, sino lo hace al instante...
Ok y mi otra duda es, como haria yo para mostrar el scroll de un div hacia abajo siempre... ?
Código Javascript
:
Ver original$(document).ready(function(){
var contenido;
function traerMensajes()
{
var mensaje = '';
$.post('controller/chat.controller.php',{action: 'traerMensajes'},function(data){
//Limpiamos previamente
$(".mensajes").html('');
$(".mensajes").html(data);
})
scrollDown();
}
function scrollDown() {
$("#txtMensaje").animate({ scrollTop: $("#chatbox").attr("scrollHeight") - 20 }, 'normal');
}
//Validar escritura
$("#txtMensaje").live('keydown',function(){
if($(this).val().length >= 200)
$(this).val(contenido);
else
contenido = $(this).val();
})
//Enviar mensaje
$("#btnEnviar").live('click',function(){
if($("#txtMensaje").val().length <= 10)
{
alert("El mensaje es demasiado es corto para ser enviado, intentelo de nuevo");
$("#txtMensaje").focus();
}
else
{
escribirMensaje();
esconderBoton(false);
ajaxLoader(true);
}
})
function esconderBoton(x)
{
switch (x)
{
case true:
$("#btnEnviar").show();
break;
case false:
$("#btnEnviar").hide();
break;
}
}
function ajaxLoader(x)
{
switch (x)
{
case true:
$("#ajaxLoader_chat").show();
break;
case false:
$("#ajaxLoader_chat").hide();
break;
}
}
function escribirMensaje()
{
$.post('controller/chat.controller.php',{action: 'escribirMensaje',txtMensaje: $('#txtMensaje').val()},function(){
$("#txtMensaje").val('');
traerMensajes();
ajaxLoader(false);
})
setTimeout(esconderBoton(true), 2000);
}
setInterval(traerMensajes(),2000);