1

このメソッドを使用して適切なコンテンツを表示しようとしています: 決定された id + '-box' で div コンテンツを開くよりも、クリックされた div の id を決定します。しかし、うまくいきません。

動作しない JQuery:

$(".portfolio-apps section").click(function() {
    var currentID = '#' + $(this).attr('id');
    console&&console.log(currentID);
    var currentIDBox = currentID + "-box";
    console&&console.log(currentIDBox);
    $(currentID).click(function() {
        $('.portfolio-entry-text').hide('fast');
        var bcn = $(currentIDBox);
        if ($('.box-content').is(':visible')) {
            $('.box-content').hide();
            bcn.show();
        }
        else {
            $('.box-content').hide();
            bcn.slideToggle(200);
        }
    });
}); 

動作している同様の JQuery:

$("#gterminal").click(function() {
    $('.portfolio-entry-text').hide('fast');
    var bcn = $('#gterminal-box');
    if ($('.box-content').is(':visible')) {
        $('.box-content').hide();
        bcn.show();
    }
    else {
        $('.box-content').hide();
        bcn.slideToggle(200);

    }
});

HTML

<div class="portfolio-apps clearfix">
         <section class="button" id="gterminal">
            <span>Google in Terminal</span>
         </section>
         <section class="button" id="MySQLToJSON">
            <span>MySQL to JSON</span>
         </section>
        </div>


<div id="wrapper" >
      <div class="box-content" id="gterminal-box">
          <p>BOX 1</p>
      </div>

      <div class="box-content" id="MySQLToJSON-box">
          <p>BOX 2</p>
      </div>
</div>
4

1 に答える 1

1

イベントを内部的にバインドしています。.clickつまり、-box表示/非表示は 2 回目のクリックまでトリガーされません。これは私には意味がありません。内部.clickバインディングを削除するだけで、非常にうまく機能するようです。

http://jsfiddle.net/Th3wT/

于 2013-01-29T01:50:38.933 に答える