【发布时间】:2017-05-10 01:47:53
【问题描述】:
我正在尝试编写一个 jQuery 函数来隐藏/显示单击时的 div。
我有一个<a> 标签,其类为my-button。当页面加载时,具有 my-div 类的 div 最初被 display: none 隐藏。当用户点击my-button 并且my-div 被隐藏时,我想显示my-div。当my-div 可见时,我希望能够在用户单击页面上除my-div 之外的任何位置时隐藏它。这还包括点击my-button。
<a class="my-button">Click me!</a>
<div class="my-div">Show Me or Hide Me!</div>
我尝试使用.toggle() 函数但没有成功;单击my-button 后,my-div 将不会显示。如果我将.toggle() 替换为.show(),如果我单击页面上的任何位置,my-div 将显示和隐藏,但如果我再次单击my-button,则不会显示和隐藏。
$(document).mouseup(function(e) {
var $container = $(".my-div");
$(".my-button").click(function(){
$container.toggle();
});
if (!$container.is(e.target) && $container.has(e.target).length === 0) {
$container.hide();
}
});
实现我想要的最佳方式是什么。
【问题讨论】: