2016-04-27 5 views
0

Ich wollte get_convo nach 5000 Sekunden abfeuern, aber es feuert automatisch, nachdem ich auf eine Nachricht klicke.jquery feuert ab ohne bein erzählt noch

$(".mes").click(function(){ 
     var user = $(this).attr("id"); 
     $("#convo").html(user); 
     $(".convo_mes").html("Loading conversation <img width='15' height='15' src='./img/load.gif'>"); 
     setTimeout(get_convo(user),5000); 
    }); 

    //get convo 
    function get_convo(user){ 
     $.post("./php/get_convo.php",{username:user},function(get_convo){ 
      $(".convo_mes").html(get_convo); 
     }); 
    } 

Antwort

1
setTimeout(function() {get_convo(user)}, 5000); 

Wenn das nicht funktioniert, dann kann es nur sein, weil AJAX macht, was es will.

+0

Arbeitete Vielen Dank! –

1

Die Funktion wird aufgerufen, sobald die Funktion setTimeout gelesen wird. Sie müssen eine ordnungsgemäße Funktion geben. So kann setTimeout diese Funktion später aufrufen. Dies wird die Lösung sein:

$(".mes").click(function(){ 
     var user = $(this).attr("id"); 
     $("#convo").html(user); 
     $(".convo_mes").html("Loading conversation <img width='15' height='15' src='./img/load.gif'>"); 
     setTimeout(function(){ get_convo(user)},5000); 
    }); 
Verwandte Themen