第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用于兩個切換的 jQuery/JavaScript if 語句

用于兩個切換的 jQuery/JavaScript if 語句

幕布斯7119047 2021-11-18 17:02:34
我在標題中有兩個具有不同內(nèi)容的切換(toggle-1 和 toggle-2)。我想阻止用戶同時激活兩個切換(否則它們會重疊)。在下面的代碼中,我嘗試使用 if 語句來隱藏一個切換,如果另一個已經(jīng)打開,但它不起作用。理想情況下,我希望發(fā)生的是,如果 toggle-1 處于活動狀態(tài)并且用戶單擊 toggle-2,則 toggle-1 將返回其原始狀態(tài),而 toggle-2 現(xiàn)在將處于活動狀態(tài)。反過來也是一樣。我還不熟悉 JavaScript,如果您能告訴我我做錯了什么以及應(yīng)該如何做才能獲得理想的結(jié)果,我將不勝感激如果你覺得它更容易,這里是我的 CodePen 的鏈接:https ://codepen.io/fergos2/pen/NWWxgEpvar myTogglevar oneToggle = $(document).ready(function() {  $('.toggle-1').click(function() {    $('.toggle-1').toggleClass('active')    $('.toggle-1-content').toggleClass('active')  })})var twoToggle = $(document).ready(function() {  $('.toggle-2').click(function() {    $('.toggle-2').toggleClass('active')    $('.toggle-2-content').toggleClass('active')  })})if (myToggle == oneToggle) {  $(document).ready(function() {    $('toggle-2-content').hide();  })} else if (myToggle == twoToggle) {  $('toggle-1-content').hide();}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><div class="container">  <div class="wrapper">    <div class="toggle-1">1</div>    <div class="toggle-1-content">      <p>Some content 1</p>    </div>    <div class="toggle-2">2</div>    <div class="toggle-2-content">      <p>Some content 2</p>    </div>  </div></div>
查看完整描述

3 回答

?
jeck貓

TA貢獻1909條經(jīng)驗 獲得超7個贊

幾個問題。

請研究下面的代碼

  • 太多 $(document.ready... 并且不需要存儲這樣的語句的結(jié)果

  • 使用數(shù)據(jù)屬性和公共類,可以大大縮短代碼。DRY 不要重復(fù)自己

  • 我也簡化了內(nèi)容容器 CSS

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="container">


  <div class="wrapper">

    <div class="toggle-1">1</div>

    <div class="toggle-1-content">

      <p>Some content 1</p>

    </div>


    <div class="toggle-2">2</div>

    <div class="toggle-2-content">

      <p>Some content 2</p>

    </div>

  </div>


</div>


查看完整回答
反對 回復(fù) 2021-11-18
?
MMMHUHU

TA貢獻1834條經(jīng)驗 獲得超8個贊

工作代碼:


$(document).ready(function() {

  $('.toggle-1').click(function() {

    if ($('.toggle-2').hasClass('active')) {

      // remove toggle-2 active classes

      $('.toggle-2').removeClass('active');

      $('.toggle-2-content').removeClass('active');

    }

    

    $('.toggle-1').toggleClass('active');

    $('.toggle-1-content').toggleClass('active');

  });

  

  $('.toggle-2').click(function() {

    if ($('.toggle-1').hasClass('active')) {

      // remove toggle-1 active classes

      $('.toggle-1').removeClass('active');

      $('.toggle-1-content').removeClass('active');

    }

    

    $('.toggle-2').toggleClass('active');

    $('.toggle-2-content').toggleClass('active');

  });

});

這是我的工作版本的鏈接

需要注意以下幾點:

  1. 您不需要$(document).ready()多次調(diào)用。沒有理由在單個頁面上多次調(diào)用它,因為該事件僅被觸發(fā)一次。

  2. 你需要以某種方式跟蹤狀態(tài);因此if ($('el').hasClass('classname'))語法。一旦處理得當,很容易確保在單擊另一個元素時每個元素都“重置”到其原始狀態(tài)。

希望有幫助!


查看完整回答
反對 回復(fù) 2021-11-18
?
catspeake

TA貢獻1111條經(jīng)驗 獲得超0個贊

toggleClass接受強制切換類型的第二個布爾參數(shù),打開或關(guān)閉。不僅如此,您還可以使用單個 jQuery 調(diào)用來定位多個元素,因此請充分利用它,因為應(yīng)用的類具有相同的名稱。


所以你可以簡化你的代碼


$(document).ready(function() {

  $('.toggle-1').click(function() {

    $('.toggle-1, .toggle-1-content').toggleClass('active');

    $('.toggle-2, .toggle-2-content').toggleClass('active', false)

  })


  $('.toggle-2').click(function() {

    $('.toggle-2, .toggle-2-content').toggleClass('active');

    $('.toggle-1, .toggle-1-content').toggleClass('active', false)

  })

})

.container {

  width: 100%;

  height: 1000px;

  margin: 0 auto;

  background-color: #eee;

}


.wrapper {

  background-color: pink;

  position: relative;

  display: flex;

  align-items: center;

}


.toggle-1,

.toggle-2 {

  display: block;

  width: 20px;

  height: 20px;

  float: left;

  cursor: pointer;

  color: white;

  text-align: center;

  background-color: green;

  margin: 10px;

}


.toggle-1.active,

.toggle-2.active {

  background-color: red;

}


.toggle-1-content,

.toggle-2-content {

  display: none;

}


.toggle-1-content.active,

.toggle-2-content.active {

  display: block;

  background-color: white;

  border: 1px solid black;

  position: absolute;

  top: 40px;

}


.toggle-1-content.active {

  left: 0;

}


.toggle-2-content.active {

  left: 50px;

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="container">


  <div class="wrapper">

    <div class="toggle-1">1</div>

    <div class="toggle-1-content">

      <p>Some content 1</p>

    </div>


    <div class="toggle-2">2</div>

    <div class="toggle-2-content">

      <p>Some content 2</p>

    </div>

  </div>


</div>


查看完整回答
反對 回復(fù) 2021-11-18
  • 3 回答
  • 0 關(guān)注
  • 285 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號