2012-03-20 13 views
1

私は問題があります。リンクpをクリックして開いた後、他のリンクをクリックしても動作しません。もう一度クリックすると動作します。JQueryのトグル()関数

これは私のjQueryのコードです:私はそれを行うことができますどのように初期値は0でなければなりません、別のリンクをクリックしたときに

var toggle = 0; 
$(document).ready(function() { 
    $(".feedback_block").each(function() { 
     $("a", this).click(function (e) { 
      if (toggle == 0) { 
       $(this).parent().children("p").stop(true, true).fadeIn(500); 
       $(this).addClass("clicked"); 
       $(this).children().addClass("clicked_span"); 
       toggle = 1; 
       console.log(toggle); 
      } else 
      if (toggle == 1) { 
       $(this).parent().children("p").stop(true, true).fadeOut(500); 
       $(this).removeClass("clicked"); 
       $(this).children().removeClass("clicked_span"); 
       toggle = 0; 
       console.log(toggle); 

      } 
      e.stopPropagation(); 
      return false; 
     }); 
     toggle = 0; 
    }); 
}); 

私は、パラメータの切り替えが1を入手クリックして?

私の例:http://jsfiddle.net/amkrtchyan/tjzaR/

+0

私はこれを編集しましたが、S/Oエディターは約10のタイトルを拒否しました(怒っています)。誰でも、私の(今後の)編集を改善してください。 – halfer

答えて

1

あなたは、単に(ここではフィドルhttp://jsfiddle.net/tjzaR/1/)あなたができる

$(document).ready(function() { 
    $(".feedback_block").each(function() { 
     $("a", this).toggle(function (e) { 

       $(this).parent().children("p").stop(true, true).fadeIn(500); 
       $(this).addClass("clicked"); 
       $(this).children().addClass("clicked_span"); 

      }, function(){ 
       $(this).parent().children("p").stop(true, true).fadeOut(500); 
       $(this).removeClass("clicked"); 
       $(this).children().removeClass("clicked_span"); 


      }); 
    }); 
}); 

またはトグル()(http://jsfiddle.net/tjzaR/2/)

を使用することができます
$(".feedback_block").each(function() { 
    $("a", this).click(function (e) { 
     if (!$(this).parent().children("p").is(":visible")){ 
      $(this).parent().children("p").stop(true, true).fadeIn(500); 
      $(this).addClass("clicked"); 
      $(this).children().addClass("clicked_span"); 

     } else{ 
      $(this).parent().children("p").stop(true, true).fadeOut(500); 
      $(this).removeClass("clicked"); 
      $(this).children().removeClass("clicked_span"); 


     } 
     return false; 
    }); 

}); 
+0

私は関数toggle()を知っていますが、私のコードでこれを行う方法がありますか? –

+0

@AramMkrtchyanは、あなたの '$(" a "、this)).click(上記のコードで関数(e){'を削除し、あなたが作成したトグル変数を削除します) – voigtan

+0

助けてくれてありがとう –

0
$("a", this).toggle(function() { 

       $(this).parent().children("p").stop(true, true).fadeIn(500); 
       $(this).addClass("clicked"); 
       $(this).children().addClass("clicked_span"); 
       return false; 

      }, function(){ 

       $(this).parent().children("p").stop(true, true).fadeOut(500); 
       $(this).removeClass("clicked"); 
       $(this).children().removeClass("clicked_span"); 
       return false; 

      }); 

我々は直接トグル機能を使用することはできません。 Toggle

+0

の頭を引きますが、私のコードでこれを行う方法がありますか? –