2016-07-05 14 views
0

J'ai besoin d'aide pour redresser cette situation compliquée. Le code suivant pour une conversation de navigateur fonctionne dans son ensemble, mais ce n'est pas super.HTML :: appel de nombreuses fonctions dans un tag

<p>chat in silence:</p> 
<input id="yousay" name="input" size="52" onkeydown="if (event.keyCode == 13) { doTalk(); }"/> 

<p>chat in with music:</p> 
<textarea onfocus="clearContents(this);" id="chat" cols="50" rows="2" ></textarea> 

<button type="button" onclick="triggerAll();">answer</button> 

ce sont les scripts:

<script src="scripts/soundEngine.js"></script> 
<script src="scripts/animationEngine.js"></script> 
<script src="scripts/talk.js"></script> 

ce qui appelle l'API bot

<script> 
    var pb = new Pandorabot("aiaas.pandorabots.com", 'validid', 'validname', 'validid'); 
    function doTalk() { 
    var input = document.getElementById("yousay").value; 
    document.getElementById("yousay").value = ""; 
    pb.talk(input, function(data) { 
     var response = data["responses"]; 
     document.getElementById("response").innerHTML = response; 
     console.log(response); 
    }); 
    } 
</script> 

et cette fonction pour les appeler à la fois:

<script> 
     function triggerAll(){ 
     doTalk(); 
     play_song(); 
     animate_song(); 
     } 
</script> 

aperrently , <textarea> appels play_song() et animate_song(), mais ne remet pas doTalk()

Est-il possible que je peux mettre toutes les fonctions au sein d'un tag et réduire le code?

Répondre

1

En HTML, vous pouvez appeler la fonction qui les appelle tous. Comme vous avez script d'une, deux, trois et vous faites cela

<randomtag onclick="call_all()"></randomtag> 

<script type="text/javascript"> 
    function call_all(){ 
    one(); 
    two(); 
    three(); 
    } 
</script> 
0
var pb = new Pandorabot("aiaas.pandorabots.com", 'validid', 'validname', 'validid'); 

arguments ici sont valides? Si ces arguments ne sont pas valides, la fonction doTalk() n'existe pas et vous ne pouvez pas les appeler