我正在构建一个下拉菜单。当您单击箭头时,下拉列表将打开。
当菜单打开时,我想关闭菜单项单击或文档模糊上的菜单。但似乎我不想这样绑定以下内容:
$(document.body).bind('click',function(e) {
if(menuopen) {
因为这会跟踪菜单的所有点击。有没有办法只在菜单打开时让这个绑定工作?当菜单关闭时解除绑定?
由于
答案 0 :(得分:1)
这样的事情怎么样?
$(document.body).on("click blur", function () {
$("div.dropdown.open").removeClass("open");
})
$("div.dropdown div.arrow").on("click", function () {
$(this).closest("div.dropdown").addClass("open");
})
这假设添加.open
CSS类显示菜单,而删除它会隐藏菜单。
请注意,自jQuery 1.7起,.on()
可用。早期版本使用.bind()
或.delegate()
获得相同的效果。