簡體   English   中英

單擊特定圖像時更改div的css

[英]Change the css of a div when a specific image is clicked

我有三張圖片,根據要單擊的圖片,我想更改特定div的CSS。 我只是不明白如何將圖像的點擊連接到div。

下面是一個我認為應該如何工作的(壞)示例。 我不了解如何在不為每個圖像/單擊創建函數的情況下完成此操作。

 $('.circle_hiw_cont img').click(
        function() {
            if(this == content_img_1.jpg) {
                  $("#content_1").css("display", "block");
                   $("#content_2").css("display", "none"); 
                  $("#content_3").css("display", "none");
            } else {

            }
        }
    );

HTML:

<img id="content_img_1" src="images/conent_img1.jpg"/>
<img id="content_img_2" src="images/conent_img2.jpg"/>
<img id="content_img_3" src="images/conent_img3.jpg"/>
<div id="content_1">This is div 1</div>
<div id="content_2">This is div 2</div>
<div id="content_3">This is div 3</div>

CSS:

#content_1{display:block;}
#content_2{display:none;}
#content_3{display:none;}

您可以將類添加到元素,並使用indexeq方法:

var $img = $('.img').on('click', function() {
   $('.div').hide().eq( $img.index(this) ).show();
});

請注意,由於此解決方案基於索引,因此元素的順序很重要。

如果顯示的div是預定義的,則應該起作用:

 $('.circle_hiw_cont img').click(
        function() {
            if( $(this).attr('src') === "content_img_1.jpg") {
                  $("#content_1, #content_2, #content_3").toggle();
            } else {

            }
        }
    );

您實際上相差不遠,不過this將引用當前的DOM節點,而不是您的代碼假定的圖像src:

$('.circle_hiw_cont img').click(
        function() {
            if(this.src == "content_img_1.jpg") {
                  $("#content_1").css("display", "block");
                   $("#content_2").css("display", "none"); 
                  $("#content_3").css("display", "none");
            } else {

            }
        }
    );

上下文this函數調用是指被點擊的DOM元素。 您將需要比較適當的屬性。

$('.circle_hiw_cont img').click(
    function() {
        var $this = $(this);
        if($this.attr('href') == 'content_img_1.jpg') {
              ...
        } else {

        }
    }
);

您也可以嘗試

 var $contents = $('.content'); var $imgs = $('.circle_hiw_cont img').click(function() { var $target = $('#content_' + this.id.replace('content_img_', '')).show(); $contents.not($target).hide(); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div class="circle_hiw_cont"> <img id="content_img_1" src="//placehold.it/64/ff0000" /> <img id="content_img_2" src="//placehold.it/64/00ff00" /> <img id="content_img_3" src="//placehold.it/64/0000ff" /> <div id="content_1" class="content">This is div 1</div> <div id="content_2" class="content">This is div 2</div> <div id="content_3" class="content">This is div 3</div> </div> 

為所有表示“ imgClass”的圖像提供一些類名,然后

 $('.imgClass').click(
    function() {
              $("#content_1").css("display", "block");
               $("#content_2").css("display", "none"); 
              $("#content_3").css("display", "none");
                }
 );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM