【发布时间】:2018-09-29 06:23:20
【问题描述】:
我一直在努力让按钮上的弹出菜单。 此菜单有 7 个按钮,位于不同容器中的页面上。到目前为止,您可以单击按钮并打开菜单。
每个菜单都以自己的版本打开,这有效但效率不高:
$('.country-btn-portugal').click(()=>{
$(".dropdowna").toggleClass('active');
});
$('.country-btn-uk').click(()=>{
$(".dropdowna").toggleClass('active');
});
....等... x7,每个按钮菜单一个。
如果单击某个项目但不起作用,我已尝试关闭菜单:
//close if menu <a> is clicked
$('#mclose').click(()=>{
$('.dropdown').removeClass('active');
});
如果单击了不是此元素的项目(不起作用),则使用以下方法关闭菜单:
$(document).mouseup(function (e)
{
var container = $("#oclick");
if (!container.is(e.target) // if the target of the click isn't the container...
&& container.has(e.target).length === 0) // ... nor a descendant of the container
{
container.hide();
}
});
当 1 个菜单打开并且您的下一次单击是另一个菜单时,我希望这也能解决问题,所以你们两个都打开了。
菜单按钮将提供单独的 div(或类似卡片的框,并且不是相邻的兄弟。因此很难压缩代码。必须为每个菜单提供自己的点击功能。
对不起,一团糟。很高兴看到我在哪里出错了。
小提琴 --> https://jsfiddle.net/s4nk1zev/118/
一张“卡片”和一个“菜单按钮”的html结构。
<div class="country_card">
<span class="cc-t goth upperC">Portugal </span> <span class="cc-t goth upperC blued">Visa</span>
<div class="cc-txt">
text in here
</div>
<div class="cc-btn">
<button class="tablabel country-btn-portugal" id="portimg"></button>
<div id="mcontainer" class="dropdowna">
<a id="mclose" class="mclose" href="#home">Overview</a>
<a id="mclose" href="#about">Application Process</a>
<a id="mclose" href="#contact">Investment Options</a>
</div>
</div>
</div>
【问题讨论】:
标签: javascript jquery