0

画像をクリックしたときにのみ表示/非表示になるようにセレクターを変更するには、.OS画像の直後にスポイラー/ポップダウンメニューを配置します。現在、ポップダウンは.OSコンテナの子であるため、そのクリックは.OSクリックハンドラに渡されます。

MACしかし、1番目をクリックすると両方のネタバレが開くため、コードは完全ではありません。

でもネタバレを一枚ずつ開けて欲しい

<td>しかし、主な問題は、タグ内のこれらのタイプのスポイラー(dokuwikiクラス)内でjavascriptコードを適切に修正できないことです。

これは私が使用するjavascriptコードです:

<div class="dokuwiki">
    <div class="right_page">
        <div class="entry-content">
            <script type="text/javascript" src="./zzzz_files/jquery.js"></script>
            <script type="text/javascript">                                         
                $(document).ready(function(){
                    $(".nonjs").removeAttr( "href"); //href is needed for users without JS
                    $('.OS').click(function(){
                        if($(".details").is(":visible"))
                        {
                            $(".details").not(":hidden").hide("slow");
                            return true;
                        }
                        else
                        {
                            $(".OS").not(this).each(function(i) {
                                $(".details").hide("slow");
                            });
                            $(".details").show("slow");
                            return false;
                        }
                    });
                });  
            </script>     
            <style type="text/css">
                <!--
                .details {
                    display: none;
                    clear: both;
                    padding: 2px;
                }
                .nonjs{
                    cursor:pointer;
                }
                img {
                    border: 0px;
                }
                -->
            </style>

問題をよりよく説明し、コードをテストするためのファイルのローカルバージョンを提供するために、ビデオを作成することを考えました。

前もって感謝します

4

2 に答える 2

1

このコードは機能します:

 $(document).ready(function(){
 $(".nonjs").removeAttr( "href"); 
//href is needed for users without JS

 $('.OS').click(function(e){
           if(!$(e.target).parents('.details').length){
                        if($(this).find('.details').is(":visible"))
                        {
                            $(this).find('.details').not(":hidden").hide("slow");
                            return true;
                        }
                        else
                        {

                            $(this).find('.details').show("slow");
                            return false;
                        }
          }
});
 }); 
于 2012-08-04T02:25:18.133 に答える
0

あなたが何を求めているのかわかりませんが、これがあなたが望むと思うものです:

画像をクリックするときは、その下に詳細を表示し、他のすべてを非表示にします。詳細がすでに表示されている場合は、非表示にします。詳細内の何かをクリックしても、何の影響もありません。

デモ

$(document).ready(function(){
  $(".nonjs").removeAttr( "href"); //href is needed for users without JS
  $('.OS').click(function(){
    var details = $(this).next(".details");
    $(".details").hide("slow");
    if(details.is(":hidden")) {
      details.show("slow");
    }
  });
});
于 2012-08-03T14:39:12.490 に答える