0

最初の関数を実行して終了し、終了時に次の関数を開始します。現在、このようにセットアップしており、同時に実行されているようです。

$("#animate_1").click(function() {
update_1_close();
welcome_open();
});

これらは 2 つの関数です。これらを組み合わせたくはありません。いくつかの関数があり、それらを組み合わせると非常に複雑になります。

function update_1_close() {
$("#update_1").animate({
    "right": "175px",
    "width": "160px"
}, 450);
$("#update_1_caption").animate({
    "bottom": "0px"
}, 450);
$("#update_1_img").animate({
    "height": "107px",
    "width": "160px"
}, 450);
}

function welcome_open() {
$("#welcome_back_1").animate({
    "top": "345px"
}, 450);
$("#welcome_header_1").animate({
    "top": "35px",
    "left": "20px"
}, 450);
$("#welcome").animate({
    "height": "270px"
}, 450)
$("#stick_figures").animate({
    "top": "215px"
}, 450);
$("#update_1").animate({
    "top": "465px",
    "right": "175px"
}, 450);
$("#update_2").animate({
    "top": "465px"
}, 450);
$("#events").animate({
    "top": "645px"
}, 450);
$("#directions").animate({
    "top": "645px"
}, 450);
}
4

2 に答える 2

2

Welcome_open を引数として update_1_close に渡し、完了したら実行することができます。あなたはjquery animateを使用しているので、これをチェックしてください http://api.jquery.com/animate/

「完全な」パラメータを探しています。

function update_1_close( callback ) {
  $("#update_1").animate({
      "right": "175px",
      "width": "160px"
  }, 450, callback );
  $("#update_1_caption").animate({
      "bottom": "0px"
  }, 450);
  $("#update_1_img").animate({
      "height": "107px",
      "width": "160px"
  }, 450);
}


update_1_close( welcome_open );

それ以外の場合は、 update_1_close が完了するまでにかかる時間がわかっている場合は、 setTimeout を使用できます (ただし、マジック ナンバーがどこにでもある可能性があるので注意してください。すでに発生しているようです)。

于 2012-10-14T23:40:46.053 に答える
1

同時に実行することはできませんが、ブラウザーがその間で更新する機会がなくても、次々に実行される可能性があります。

2 つの関数が何をするのかはわかりませんが、次のようなものが必要になる場合があります。

$("#animate_1").click(function() {
    update_1_close();
    window.setTimeout(welcome_open, 1000);
});

それが実行さupdate_1_closeれ、1 秒後に実行されますwelcome_open

于 2012-10-14T23:35:43.427 に答える