2016-03-30 11 views
1

私はプログラマーではなく、何とかクリックすると別のdivを開くように管理されていますが、作成方法を管理していないので、divを開くボタンをクリックすると他のボタンをクリックするとdivを開き、前のdivを非表示にします。私はjoomlaのテンプレートに後でそれを統合したいと思いますが、もし私がjqueryとすべての努力をしていないのであれば、誰かが賢いかもしれません。前もって感謝します。私はここでもフィドルを演奏しています。 fiddle example of my buttonsjavascript、elseボタン付きのdivボタン

私はコードを改訂し、それを簡略化して追加のCSSクラスを追加しました。すべてがかなり良いようですが、既に開いているdivをクリックすると、ループしているように見えます。

edited fiddle

$(document).ready(function() { 
$('#b1').click(function() { 
$('.bats').hide("slow"); 
$('#uch').toggle("slow"); 
}); 
$('#b2').click(function() { 
$('.bats').hide("slow"); 
$('#uch2').toggle("slow"); 
}); 
$('#b3').click(function() { 
$('.bats').hide("slow"); 
$('#uch3').toggle("slow"); 
}); 
}) 

答えて

2

あなたは、ボタンのクリックで他のuch要素にhide('slow')を呼び出すことができます。あなたは1がオープンしましれる閉じ関数を書くことができます

$('#b1').click(function() { 
    $('#uch').toggle("slow"); 
    $('#uch2').hide("slow"); 
}); 
$('#b2').click(function() { 
    $('#uch').hide("slow"); 
    $('#uch2').toggle("slow"); 
}); 

Working example

+0

ですこれはかなりうまく動作します。 – elchinsolo

+0

問題なし、喜んで –

-1

:これを試してみてください!他のものを切り替える前にあなたのクリックファンクションでそれらを呼び出すよりも。ここで

1

変更IDにクラス

$(document).ready(function() { 
    $('.b1').click(function() { 
    $('.uch').hide(); 
    $(this).find('.uch').toggle("slow"); 
    }); 
}); 

https://jsfiddle.net/u28f6yeL/5/

+0

私の答えを更新 –

+0

このように私は滑らかなアニメーションを失うと、それは、どういうわけか私が本当に望んでいたものではないが、私は思考thxをキャッシュした – elchinsolo

0

あなたの問題のための実用的なソリューションです:このようなあなたのjQueryのコードを変更 :

$(document).ready(function() { 
    $('#b1').click(function() { 
    if($('#uch2').css('display') != 'none'){ 
      $('#uch2').toggle("slow"); 
}; 
    $('#uch').toggle("slow"); 
    }); 
    $('#b2').click(function() { 
    if($('#uch').css('display') != 'none'){ 
      $('#uch').toggle("slow"); 
}; 
    $('#uch2').toggle("slow"); 
    }); 



}); 

はここJSFiddle

関連する問題