jquery - 检查单击触发事件是否来自按钮 a 或 b
问题描述
我有以下 HTML 情况,这是一个示例,ID 和类不同:
<div id="form-popup">
<form id="a" class="hide"></form>
<form id="b" class="hide"></form>
<div>
<button id="btn-a">Trigger Form A</button>
<button id="btn-b">Trigger Form B</button>
上述情况是当按钮#btn-a
被触发时#form-popup
会出现。这种情况无法改变,因此(我认为)我需要在单击#btn-a
时触发#btn-b
:
$('#btn-b').click(function(){
$('#btn-a').trigger('click');
});
我想做的是同时隐藏链接的表单。所以隐藏形式#a
with#btn-b
和 form #b
with #btn-a
。我尝试了一些 jQuery 解决方案,但由于#btn-a
具有双重功能,我进入了一个循环;触发#form-popup
并隐藏某种形式。
我正在考虑放置一个 if 语句来定义点击事件的来源,但我不确定如何?或者也许有更好的解决方案?
所以下面的情况会导致明显的循环:
$('#btn-a').click(function(){
$('#a').removeClass('hide');
$('#b).addClass('hide');
});
$('#btn-b').click(function(){
$('#a').addClass('hide');
$('#b').removeClass('hide');
$('#a').trigger('click');
});
解决方案
$("#btn-a, #btn-b").click(function(e){
if(e.currentTarget.id == 'btn-a')
{
$("form#a").removeClass('hide');
$("form#b").addClass('hide');
}
else
{
$("form#b").removeClass('hide');
$("form#a").addClass('hide');
}
});
推荐阅读
- cuda - nvcc 和 NVIDIA-smi 显示的不同 CUDA 版本
- scikit-learn - 在 PyQt5 应用程序中,是否可以在不冻结的情况下运行具有并行作业的 sklearn
- javascript - contentComponent 中的未定义函数 onClick
- reactjs - docker-compose 环境中的 CORS 请求失败
- python - 从临时 dbus 会话中解锁 gnome-keyring
- java - 通过修改另一个类中的变量来更新 GUI 不工作 java
- php - 如何在 Codeigniter 中按 id 删除记录
- powershell - 仅重命名文件名的特定部分
- nestjs - 在 NestJs 中 @Get 具有多个参数的 DTO
- excel - 从 div/table 中获取数据