検索

ホームページ  >  に質問  >  本文

JavaScript コードの実行に関するスコープ順序の問題?

var mark2=true;
$(".right").click(function(){

リーリー

関数移動(obj){

リーリー

$(".right") をクリックして移動関数を実行します。主に obj 要素にアニメーションを追加します。$(".right") のクリックが速すぎてアニメーションと重なるのを防ぐために、mark2 を使用してそれを制御します。アニメーションの実行が完了すると、つまり、マークは 500 ミリ秒後に true になります。$(".right") をクリックして実行します。そうでない場合は実行されません。しかし、質問があります。つまり、クリックしたときです。 if文で速度が500ミリ秒以上の場合 マークが実行される機会がなく、再度クリックされるということは、常にアニメーションが重畳されるということではないでしょうか?マークは常に true なので、プログラムは正常に実行できるので、私の理解が間違っているようです。プログラムの実行プロセスについて誰かが私に指導してくれることを願っています

phpcn_u1582phpcn_u15822732日前738

全員に返信(2)返信します

  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-26 10:53:58

    問題の核心はクリック速度が500ミリ秒を超えていることであると理解しています。これは真実であり、同じ要素でmousedown mouseup事件后才会触发 clickイベントが次々にトリガーされるだけです。 move() は、クリックイベントがトリガーされた後にのみ実行されます

    したがって、あなたが考えているタイムアウト状況は起こりません。

    返事
    0
  • 仅有的幸福

    仅有的幸福2017-06-26 10:53:58

    可変制御を使いたい場合はマーク2を一番上に移動すると分かりやすくなります。プロセスは次のようになります:
    次の場合:
    右クリック -----》非同期アニメーションを実行-----》mark2 = false ----(0.5 秒後)----》mark2 = true;

    どのようにクリックしても、それが 0.5 秒より長くても 0.5 秒未満であっても、アニメーションの実行が終了し、マーク 2 が true でない限り、if 条件はまったく入りません

    返事
    0
  • キャンセル返事