2013-02-28 47 views
0

所以在我的主页上,我有一个自定义的工具提示,它只是一个隐藏了一些信息的div,当你选择一个按钮时,它会打开菜单。如果您单击文档中的任何其他位置,它将隐藏该div。该代码看起来像这样。Click Event - Main Document and Dialog jQuery

$(document).on("click", function() { 
    $("#supTooltip").fadeOut("fast", "linear"); 
}); 
$("#supervisorButton").on("click", function(e) { 
    e.stopPropagation(); 
    return false; 
}); 

单击此项后,您可以单击菜单中的多个不同选项。一个提出一个对话。在那个对话框中,我也有一个类似的滤镜菜单。代码看起来一样,只是不同的ID被拉。

$(document).on("click", function() { 
    $("#filtersDiv").fadeOut("fast", "linear"); 
}); 
$("#filtersButton").on("click", function(e) { 
    e.stopPropagation(); 
    return false; 
}); 

我不能这样做吗?我试图关闭点击事件,但它似乎不起作用。我在代码的第二次迭代上面使用了这个。

$(document).off("click"); 

任何帮助都会很棒。过去几个小时,我一直在绞尽脑汁。

编辑1:

请求的jsfiddle。 http://jsfiddle.net/yDmAK/1/

这是有效的,但不同之处在于,menu2功能与menu1功能不在同一个文件中。该对话框使用加载事件将数据填充到单独的文件中,以便从单独的文件中提取数据。

这可能是导致问题或否?

+0

您可能需要链接到jsfiddle或在线示例。 – 2013-02-28 21:15:21

+0

我仍然不理解你的确切问题 – Evan 2013-02-28 21:16:24

+0

对不起,我不是网上的,所以我必须提供一个jsfiddle或图片。 – Christopher 2013-02-28 21:17:08

回答

0

我决定在另一个线程上使用另一个user发布的另一种方法。

$(document).mouseup(function (e) 
{ 
    var container = $("YOUR CONTAINER SELECTOR"); 

    if (container.has(e.target).length === 0) 
    { 
     container.hide(); 
    } 
}); 

这似乎是做伎俩,工作正常。