使用单个切换按钮访问多个链接

Posted

技术标签:

【中文标题】使用单个切换按钮访问多个链接【英文标题】:Accessing multiple Links using a single toggle button 【发布时间】:2020-12-15 02:42:58 【问题描述】:

我的 html 页面中有 2 个按钮(开灯和关灯)用于发送 http 请求以打开和关闭灯。但是现在,我不知道如何使用单个切换按钮发送两个 http 请求。例如:当切换按钮打开时,它会发送一个 http web 请求,当它关闭时,它会发送另一个 web 请求。

目标:当切换按钮打开时,它会向智能灯泡发送请求并将其打开。当切换按钮关闭时,它会发送关闭灯泡的请求。

所需的切换按钮是

https://codepen.io/juan-carlo-isidro-onciangco/pen/WNrBJWZ

HTML

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

<div class="btn-base">
  <input type="checkbox" class="btn-inner">
</div>

查看上面链接中的完整代码

【问题讨论】:

在这种情况下,我认为没有理由不能制作可运行的 sn-p。 【参考方案1】:

首先检查该类是否存在,然后根据该类执行您的请求

btn.addEventListener('click', function() 

    if(btn.classList.contains('turn-on')) 
       btn.classList.remove('turn-on');
       // http request here for turn off
     else 
       btn.classList.add('turn-on');
       // http request here for turn on
    
    
    btn.classList.toggle('btn-inner-on');
    bodyWindow.classList.toggle('body-on');
    btnBase.classList.toggle('btn-base-on');
);

【讨论】:

但是你在哪里添加你的两个 http 请求? @jo8080 就在我放 cmets 的地方 @jo8080 //http request here 删除评论并将您的请求放在那里。 通常不向类添加事件处理程序。如果该类更改其名称,则该事件将被破坏。【参考方案2】:

输入检查中的事件。如果输入检查打开,否则关闭。按照代码:

const btn = document.querySelector('.btn-inner');
const btnBase = document.querySelector('.btn-base');
const bodyWindow = document.querySelector('body');

btn.addEventListener('click', () => 
    
    btn.classList.toggle('turn-on');
    btn.classList.toggle('btn-inner-on');
    bodyWindow.classList.toggle('body-on');
    btnBase.classList.toggle('btn-base-on');
  
    if(btn.checked)  
       //http request here for turn on
       console.log('turn on');
     else 
       //http request here for turn off
       console.log('turn off');
  
);

【讨论】:

以上是关于使用单个切换按钮访问多个链接的主要内容,如果未能解决你的问题,请参考以下文章

django-allauth:将多个社交帐户链接到单个用户

多个容器视图 VS 链接到单个容器视图的多个视图控制器

Material Design — 按钮( Buttons)

使用链接或按钮切换整个手风琴功能

如何在单个单元格中插入多个超链接?

如何创建将从多个链接打开随机链接的单个链接