【发布时间】:2018-08-27 05:45:12
【问题描述】:
我正在使用这个 jQuery 进行下拉切换。它仅在启动时工作正常。
我想要做的是,当单击页面正文内的任何位置时,我的下拉菜单应该消失。
我已经申请了下面的jQuery。但它只工作一次。如果我再次点击下拉菜单意味着下拉菜单没有显示......
$(document).ready(function() {
// Show hide popover
$(".dropdown").click(function() {
$(this).find(".dropdown-menu").slideToggle("fast");
});
});
$(document).on("click", function(event) {
var $trigger = $(".dropdown");
if ($trigger !== event.target && !$trigger.has(event.target).length) {
$(".dropdown-menu").slideUp("fast");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="dropdown">
<a href="#">Products ▾</a>
</button>
<ul class="dropdown-menu">
<li><a href="#">Laptops</a></li>
<li><a href="#">Monitors</a></li>
<li><a href="#">Printers</a></li>
</ul>
【问题讨论】:
-
我不会用 jQuery 来做这件事。仅使用 CSS 即可轻松完成。请参阅下面的链接。可以制作此代码,使其适合您的需要。 stackoverflow.com/questions/51972655/…
-
对脚本使用 ID 属性,对 CSS 使用类属性 :)
-
Hey mplungjan 你的代码很好,只需删除 $(this).find 而不是 $(this).find(".dropdown-menu").slideToggle("fast");它将是 $(".dropdown-menu").slideToggle("fast");
标签: jquery