我正在尝试使用 jQuery 切换 DIV 元素,一个很好的实现示例是单击 Udemy. 上的注册按钮。
我已经使用 jQuery 实现了类似的东西,但我确信为了获得我想要的效果,我必须使用 JavaScript,但只是我不知道如何使用 JavaScript。
我的实现可以在我的 fiddle 中看到 here ,我最初将 div 设置为 display:none
并使用 jQuery 在单击按钮时显示 div。
正如你可以用 fiddle 告诉我的那样,它显示一个放大的动画,而不是仅仅出现(不知道如何更改它),而且我只能通过再次单击按钮来使 div 消失。
此外,我将如何实现通过单击屏幕上的任意位置使 div 消失的功能?
提前感谢任何人花时间帮助我。
最佳答案
您面临的问题是,单击该按钮也是单击您希望弹出窗口消失的区域(如果该区域已显示)。因为事件冒泡,所以单击按钮将使弹出窗口出现,然后单击文档(由于冒泡,在此之后触发)将使弹出窗口立即消失。
要解决此问题,您还必须停止单击按钮,以免冒泡到文档的其余部分。您可以通过以下方式执行此操作:
event.stopPropagation();
因此,您需要做的是确保单击按钮时,单击事件不会冒泡到文档,您已经在文档中设置了一个单击事件处理程序,使弹出窗口消失:
$(document).on('click', function(event) {
// We want to hide the pop up, but not if you click on
// the pop up itself - - anywhere else, but not the pop up
if(event.target.id !== "pop-up"){
$('#pop-up').hide();
}
});
请参阅此 fiddle 以获得工作版本:https://jsfiddle.net/0ajpd9go/8/
关于javascript - 如何切换 DIV 元素的可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36376923/