複数ボタンの関数の並走



  • ボタン押された時に関数に飛ぶようにしているのですが、複数ボタンを押した場合、対応する各関数が並走するような挙動をしているような気がするのですが、そういうものですか?

    //口
    $('#mouse').on("click",async function () {

    });

    //左目
    $('#L_eye').on("click",async function () {

    });



  • @Google-Homer さん

    javascriptの言語としての特性で,各関数は並列に動きます.
    もし並列に動かしたくない場合は,ボタンを無効化するか,押しても反応しないようにする必要があります.

    例)

    var moving = false;
    $('#mouse').on("click",async function () {
      if(moving == true){ return; }
      moving = true;
      ... 
      ... 
      ...
      moving = false;  
    });
    
    $('#L_eye').on("click",async function () {
      if(moving == true){ return; }
      moving = true;
      ... 
      ... 
      ...
      moving = false;  
    });
    
    
    


  • javascript特性である旨、了解しました。また、フラグによる排他制御事例もありがとうございました。


Log in to reply
 

SUGGESTED TOPICS