1

スポイラーを変更しようとしていますが、JavaScriptコードに問題があります

これはスポイラーです:http: //nathan3000.altervista.org/Jdownloader%20Spoiler/zzzz.html

  1. 画像「MAC」をクリックすると、スポイラーが開きます。もう一度MACをクリックすると、スポイラーが閉じます。しかし、テキストの間をクリックすると、スポイラーが再び閉じます。テキストの中央をクリックしたときにスポイラーを閉じたくないのですが、 画像「MAC」をクリックしたときだけです。

    画像をクリックしたときにのみ表示/非表示になるようにセレクターを変更するにはどうすればよいですか?
    私はまだ中をクリックしています.OS container

  2. オンラインバージョンではテーブルの境界線が表示されないのに、ローカルバージョンではテーブルの境界線が表示される理由がわかりません。

スポイラーのJavaScriptコードは次のとおりです。

<script type="text/javascript">                                         
 $(document).ready(function(){
 $(".nonjs").removeAttr( "href"); //href is needed for users without JS
 $('.OS').click(function(){
 if($(this).find(".details").is(":visible"))
 {
   $(this).find(".details").not(":hidden").hide("slow");
   return true;
 }
 else
 {

   $(this).find(".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

0

スポイラー/ポップダウンメニューを.OSイメージの直後に配置します。現在、ポップダウンは.OSコンテナの子であるため、そのクリックは.OSクリックハンドラに渡されます。

ここにあなたが望むようなものがあります:

http://tempesthostingservices.com/t/zzzz.html

于 2012-08-02T13:28:02.593 に答える
0

これは機能しています:

 $(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:21:04.317 に答える