jQueryを使って下記のようなソースを組んだのですが、問題があります。

下記のソースを実行していただくとわかると思いますが、
「右へ」と「左へ」のボタンを押すとID「test」が左右へ動くのですが、例えば「右へ」を2回押すと枠を飛び出してしまいます。
理想的な動作として、
1、「右へ」を一回押すとスクリプトが実行されて右へ移動し且つ2度同じ方向へ動かないように「右へ」移動するスクリプトがロックされる。
2、「右へ」を押した後、「左へ」を押すとスクリプトが実行され左へ移動しロックされていた「右へ」のスクリプトが解除される。そして今度は「左へ」移動するスクリプトがロックされる。

■サンプル
http://www.geocities.jp/qntbd042/demo/test.html

上記のサンプルで足りないスクリプトを教えて下さい。

回答の条件
  • 1人2回まで
  • 登録:2009/05/17 20:20:36
  • 終了:2009/05/18 00:04:27

ベストアンサー

id:suenaga3 No.1

suenaga3回答回数19ベストアンサー獲得回数52009/05/17 22:54:02

ポイント60pt

今のつくりなら、単純にフラグを入れるのが簡単かと思います。

$(function() {
  var pos_rightp = false;        // 右だったらTrue
  $("#btn_left").click(function() {
    if(!pos_rightp) {
      $("#test").animate({left: '+=180px'},'nomal');
      pos_rightp = true;        // 右に移動したのでTrue
  });
  $("#btn_right").click(function() {
    if(pos_rightp) {
      $("#test").animate({left: '-=180px'},'nomal');
      pos_rightp = false;       // 左に移動したのでFalse
    }
  });
});
id:finnapple

ありがとうございます!

おっしゃられる通り無事動きました。

2009/05/18 00:04:14

その他の回答(1件)

id:suenaga3 No.1

suenaga3回答回数19ベストアンサー獲得回数52009/05/17 22:54:02ここでベストアンサー

ポイント60pt

今のつくりなら、単純にフラグを入れるのが簡単かと思います。

$(function() {
  var pos_rightp = false;        // 右だったらTrue
  $("#btn_left").click(function() {
    if(!pos_rightp) {
      $("#test").animate({left: '+=180px'},'nomal');
      pos_rightp = true;        // 右に移動したのでTrue
  });
  $("#btn_right").click(function() {
    if(pos_rightp) {
      $("#test").animate({left: '-=180px'},'nomal');
      pos_rightp = false;       // 左に移動したのでFalse
    }
  });
});
id:finnapple

ありがとうございます!

おっしゃられる通り無事動きました。

2009/05/18 00:04:14
id:suenaga3 No.2

suenaga3回答回数19ベストアンサー獲得回数52009/05/17 23:02:03

ポイント10pt

連投すみません。

なんだかカッコを間違って消してコピペしてしまいました。

$(function() {
  var pos_rightp = false;        // 右だったらTrue
  $("#btn_left").click(function() {
    if(!pos_rightp) {
      $("#test").animate({left: '+=180px'},'nomal');
      pos_rightp = true;        // 右に移動したのでTrue
    }
  });
  $("#btn_right").click(function() {
    if(pos_rightp) {
      $("#test").animate({left: '-=180px'},'nomal');
      pos_rightp = false;       // 左に移動したのでFalse
    }
  });
});

コメントが有効でないのでこちらに書かせていただきました。

こちらにポイントは要りません。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません