jQueryのclickイベントを記述したのですが、1回目のクリックが効きません。


相対位置の座標を変化させることでdivを上下にスライドさせるのが目的です。
初めのクリックでは何も起こりません。
2回目以降は思い通りにスライドします。

どのような対処をとればよいのかわかりません。。。
以下がコード内容です。
///////////////////////////////////////////////////////////////////////
/* javascript */
$(function(){
$("#button").click(function(){
$(this).toggleClass("clicked");
if($(this).hasClass("clicked")){
$("#contents").animate({"top":"-380px"},"normal");
}else{
$("#contents").animate({"top":"0"},"normal");
}
});
});
///////////////////////////////////////////////////////////////////////////
宜しくお願い致します。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/08/29 01:25:03

回答1件)

id:Cherenkov No.1

回答回数1504ベストアンサー獲得回数493

初回クリック時に #button のclass属性にclickedが付いてるのでは?

#buttonのhtmlも含めたコピペで動くソースを提示するべき


適当

$(function(){
  $("#button").click(function(){
    if($(this).hasClass("clicked")){
      $("#contents").animate({"top":"-380px"},"normal");
    }else{
      $("#contents").animate({"top":"0"},"normal");
      $(this).toggleClass("clicked");
    }
  });
});

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

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

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

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

回答リクエストを送信したユーザーはいません