簡體   English   中英

通過單擊另一個div顯示/隱藏Div

[英]Show/Hide Div by clicking another div

我是javascript的初學者,我寫了一個簡單的代碼,試圖通過單擊另一個div來顯示/隱藏div。 如果有人可以檢查我編寫的代碼並更正我,我將不勝感激。 提前致謝。

$('DivBlue').ready(function() {
    $('DivRed').on('click', function(){
        document.getElementById('DivBlue').style.display = 'block';
    });
});
.DivRed{
  position:absolute;
  top:0;
  left:0;
  width:15vw;
  height:15vw;
  background-color:red;
}

.DivBlue{
  position:absolute;
  display:none;
  right:0;
  bottom:0;
  width:15vw;
  height:15vw;
  background-color:blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="DivRed"></div>
<div class="DivBlue"></div>

您可以使用jQuery庫中的toggle()函數執行此操作。 不帶參數的toggle()是一個快捷方式,用於顯示/隱藏DOM元素。

同樣,優良作法是在文檔上使用.ready()而不是DOM的元素。

因此,您的JS代碼應如下所示:

$(document).ready(function() {

    $('.DivRed').on('click', function(){
        $('.DivBlue').toggle();
    });

}); 

演示

Toggle在jQuery中發揮了作用:

$(document).ready(function() {
  $('.DivRed').on('click', function() {
     $('.DivBlue').toggle();
  });
});

以此替換您的JavaScript,它肯定會起作用。

$(document).ready(function() {
  $('.DivRed').click(
           function() {
     $('.DivBlue').toggle();
  });
});

您在這里犯了一些錯誤,

  1. 您無法使用document.getElementById()方法通過類名稱獲取div。 您需要使用document.getElementsByClassName()方法。

  2. document.getElementsByClassName()返回一個NodeList 您不能將CSS應用於NodeList。 因此,您需要選擇一個節點以使用document.getElementsByClassName('DivBlue')[0]應用CSS

為了工作,您的代碼應更改為

$('DivBlue').ready(function() {
    $('DivRed').on('click', function(){
        document.getElementsByClassName('DivBlue')[0].style.display = 'block';
    });
});

暫無
暫無

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

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