我的页面上有一个元素,可以通过单击文本链接来打开和关闭.当用户点击元素本身之外的页面上的ANYWHERE时,我还需要隐藏元素 – 这是我的jQuery代码 – 有人可以告诉我做什么修改来做我需要的东西吗?
$(function() { $("#header-translate ul li").click(function() { $("#header-translate li ul").toggle("slide",{ direction: "up" },500); }); });
解决方法
使用
jQuery’s
one
function是完美的.
$(function() { $("#header-translate ul li").click(function(e) { e.preventDefault(); var $toClose = $("#header-translate li ul") $toClose.slideToggle(500,function() { if($toClose.is(':visible')) { $('body').one('click',function(e) { e.preventDefault(); $toClose.slideUp(500); }); } else { $('body').unbind('click'); } }); }); });
这将做的是确保此单击处理程序仅执行一次,并且仅在显示元素时执行.