0

プログラミングのこの部分に関しては、まだ初心者です。トグル機能で「解決」したものについて質問があります。3つのボタンがあります(ページの異なるdivに配置されているため、タブトグルではありません)。私が達成しようとしているのは、ボタンをアクティブにして別のボタンをクリックしたときに、アクティブなボタンを閉じたいということです。私はここでいくつかのjfiddleの投稿を似たようなもので調べ、それをページに実装して自分で理解しようとしましたが、今のところ何もうまくいきませんでした。私が現在1つのボタンに使用している機能は

<script type="text/javascript">
  $(function() {
    $('#toggle5').click(function() {
        $('.infotext').fadeToggle('fast');
        return false;
    });
  });
</script>  

1つのボタンを閉じたり開いたりすることは問題なく機能しますが、前述のように、さらに2つのボタンが必要なときにどこから始めて、それらを相互作用させるかはわかりません。誰かがそれを行う方法を知っていますか?そして、トグル機能はここでも正しい機能ですか?私がここで得たどんな答え、素晴らしいコミュニティにも前もって感謝したいと思います。

4

3 に答える 3

0

クローズすることで無効を意味する場合は、次のコードブロックでうまくいきます。また、これはボタンが送信またはボタン タイプの場合にのみ機能します。

<script type="text/javascript">
  $(function() {
        // click event for the #toggle5 button
        $('#toggle5').click(function() {
           // check if the #toggle6 is disabled
           if ( !$('#toggle6').is(':disabled')) { 
              // if is not disabled, then disabled it
              $('#toggle6').attr("disabled", "disabled");
           }
           return false;
        });
  });
</script>

ボタンがリンクの場合、preventDefault イベントを発生させる必要があります。

ドキュメントはこちら: http://docs.jquery.com/Events/jQuery.Event#event.preventDefault.28.29

<script type="text/javascript">
  $(function() {
        // click event for the #toggle5 button
        $('#toggle5').click(function() {
           $('#toggle6').on("click",function(e){
              // check if we hire the preventDefault event already
              if(!e.isDefaultPrevented()
                 e.preventDefault();
           });
           return false;
        });
  });
</script>
于 2012-10-19T11:50:13.690 に答える
0

ここに良いフィドルがあります。

$("a").click(function(e) {
    var tClass = $(this).attr("id"),
        content = $("div.content." + tClass),
        link = $(this);

    $("div.content:not('." + tClass + "')").fadeOut("fast");
    $("a").not(link).text("Open");
    content.fadeToggle("fast", function() {
        link.hide().text((content.is(":visible") ? "Close" : "Open")).fadeIn("fast");
    });

    e.preventDefault();
});​
于 2012-10-19T12:08:33.627 に答える