亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

(HTML/Js) 循環元素可見性

(HTML/Js) 循環元素可見性

泛舟湖上清波郎朗 2023-08-21 17:18:06
試試這個ajax代碼  $.ajax({     url: "../server/CustomMsg.php",     type: "POST",    data: form_data,    contentType: false,        cache: false,        processData:false,         async: true,  success: function(html) {    if (html == 1) {      $('#register_form').fadeOut('slow');      $('.loading').fadeOut();      $('.message').html('Successfully Sent ! ').fadeIn('slow');    } else       alert('Sorry, unexpected error. Please try again later.');  }});基本上,當您單擊“切換終端”時,它應該顯示藍色,然后如果您再次單擊,則返回黑色;當您單擊“切換 vnc”時,它應該顯示綠色,然后如果您再次單擊,則返回黑色。如果您單擊“切換 vnc”并且它已經是藍色,它應該變成綠色,反之亦然(但單擊“切換終端”)我目前有以下內容Js:      var terminal = document.getElementById('terminal');          //video-like element      var vncScreen = document.getElementById('screen');           //video-like element      var video = document.getElementById('video');                //video-like element      var vncToggle = document.getElementById('vncToggle');        //button      var termToggle = document.getElementById('terminalToggle');  //button      termToggle.onclick = function toggleTerminal() {        terminal.classList.toggle('hide');        vncScreen.classList.toggle('hide');        video.classList.toggle('hide');      }和css:.hide {  display: none;}當我只有兩個不同的 HTML 元素時,這種類切換方法就起作用了?,F在有 3 個,我不確定它是否會按預期工作。video最初是可見的,即hide不在其內部classListterminal最初是隱藏的,hide即位于其classListvncScreen最初是隱藏的,hide即位于其classList何時toggleTerminal()調用:video變得隱藏terminal變得可見vncScreen變得可見(但不應該)如果toggleVNC()被調用(之后toggleTerminal()):video再次變得可見(但不應該)terminal變得隱藏vncScreen變得隱藏請注意,如果任一函數調用僅由其自身切換,則此方法將起作用(前提是我刪除了vncScreen.classList.toggle('hide');intoggleTerminal()和terminal.classList.toggle('hide');in toggleVNC())。問題是我需要考慮 和 按鈕按下的任何termToggle順序vncToggle。本質上,我的目標是“循環”這些元素,以便:1) 切換“選定”元素(即termToggle對應于terminal元素的可見性 &&vncToggle對應于vncScreen元素的可見性)隱藏其余兩個元素(分別為video&& vncScreen|| terminal&& video)2) “選定”元素的切換順序不影響 1)3)“選定”元素的第二個切換將隱藏其自身以及其他未選定的元素video關于如何最好地實現這一目標有什么想法嗎?有一次,我考慮做一些邏輯來評估是否hide包含在適當的中classList,然后相應地手動添加或刪除hide類,但這對我來說似乎有點草率(idk,也許不是?)。
查看完整描述

1 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

請參閱有問題的代碼片段以了解功能,Js此處冗余發布:


var terminal = document.getElementById('terminal');

var vncScreen = document.getElementById('screen');

var video = document.getElementById('video');


var vncToggle = document.getElementById('vncToggle');

var termToggle = document.getElementById('terminalToggle');


termToggle.onclick = function toggleTerminal() {


  if (terminal.classList.contains('hide')) {

    terminal.classList.remove('hide'); 

    if (vncScreen.classList.contains('hide')) {} else {vncScreen.classList.add('hide')}

    if (video.classList.contains('hide')) {} else {video.classList.add('hide')}

  } else {

    terminal.classList.add('hide'); 

    if (video.classList.contains('hide')) {video.classList.remove('hide')} else {}

  }

}


vncToggle.onclick = function toggleVNC() {


  if (vncScreen.classList.contains('hide')) {

    vncScreen.classList.remove('hide'); 

    if (terminal.classList.contains('hide')) {} else {terminal.classList.add('hide')}

    if (video.classList.contains('hide')) {} else {video.classList.add('hide')}

  } else {

    vncScreen.classList.add('hide'); 

    if (video.classList.contains('hide')) {video.classList.remove('hide')} else {}

    }

}


查看完整回答
反對 回復 2023-08-21
  • 1 回答
  • 0 關注
  • 126 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號