2016-04-17 8 views
0

私は「プロジェクト」オブジェクトを持っています。各プロジェクトには、内部にdivとdivがあり、それは隠されています。私は複数のfadeToggle()エフェクトを作成したいので、各プロジェクトで最初のdivをクリックすると、その中のものが表示されます。複数のfadeToggle()がforループ内にありますか?

私はこれを単純なforループで実行しようとしました。

projects.display = function() { 
for (var i = 0; i < projects.length; ++i) { 
    var projectID = "#projects-" + i; 
    var moreInfoID = "#projects-" + i + "-more"; 

    // assign IDs for current project 

    $(projectID).click(function() { 
      $(moreInfoID).fadeToggle(); 
    });  
}}; 

このコードの結果は、メインのdivのいずれかをクリックすると表示されるまでLASTプロジェクトの隠されたdiv要素をトリガーするということです。

メインdivをクリックすると、指定されたhidden divに対してfadeToggle()が呼び出されるようにするにはどうすればよいですか?

答えて

0

forループが必要です。あなたは、属性を代用することができるはずで始まり、属性は、セレクタで終わる、:has()または:not()

$("[id^=projects]:has([id$=more])").click(function() { 
    $("[id$=more]", this).fadeToggle() 
}) 
+0

も参照してくださいhttp://stackoverflow.com/questions/19871627/javascript-for-loop-scope-takes-last-変数 – guest271314

+0

ありがとうございました!リンクされた質問は事を完全に説明し、私の問題を解決しました。 – HornedDemoN

関連する問題