jQueryのクリックイベントがダウンdivのスライドを作成し、ビューポートのうち、次のdivをプッシュします

StackOverflow https://stackoverflow.com/questions/2616736

質問

これは#1 content1のように見えながら、私はダウンjQueryのスライド#のcontent2を作成する方法を理解し、それを#content1を交換しようとしている実際のビューから削除#1 content2によって押し下げられている...

そして、#は#content1を交換content2作るためにクリックされた同じボタンも上にスライドし、道の互いに外を押してそれらを作る#1 content1と#のcontent2を置き換えることによって、逆の効果を行う必要があるだろう...

私は必ず私がこの間違った方法についての行ってきたんだので、jQueryを使って、すべてその偉大ないんだけど、ここで私が試したものです。

$(document).ready(function() {
$('#click').click(function() {
 if($('#content1').is(':visible')) {
  $('#content1').slideUp();
 }
 else {
  $('#content2').slideDown();
 }
}).click(function() {
 if($('#content1').is(':visible')) {
  $('#content2').slideDown();
 }
 else {
  $('#content1').slideUp();
 }
});

});

役に立ちましたか?

解決

あなたは一度だけバインドクリックする必要があり、あなたがスライド効果を切り替えることができます。 あなたはこの

のようなものを試みることができます
$(document).ready(function() {

  $('#click').click(function() {
    $('#content1').slideToggle();
    $('#content2').slideToggle();
  }
}

他のヒント

さて、あなたは同じ要素を2つのクリックイベントハンドラをバインドしようとしています。 これは、あなたが試す方法も可能ではなく、名前空間のイベントでそれは次のようになります。 その後、$(#click).bind('click.event1')以降.bind('click.event2')

しかしすることができますすべての内の1つの関数に:

$(document).ready(function() {
    // Pre selected for increased speed
    var content1 = $('#content1');
    var content2 = $('#content2');

    $('#click').click(function() {
        content1.slideToggle();
        content2.slideToggle();
    });
});

これはPERFEKT同期になりませんが、おそらくOKになります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top