检测点击是否不是某些特定的div

时间:2011-09-28 11:00:48

标签: javascript jquery javascript-events mouseevent unobtrusive-javascript

我正在开发一种水平菜单,但在点击时可见并在点击时隐藏但在点击某些箭头时可见,而在点击文件时隐藏但不是某个div容器。在该div容器中还有一些其他元素。如果我们编写document.onclick = closing函数,那么它会关闭用户是否单击该div本身。当用户点击任何地方但不在该div本身或箭头上时,我想调用closefunction。

似乎会有它的解决方案,但我还没找到,所以这就是为什么要在这里发布。请回复。

先谢谢你们。

3 个答案:

答案 0 :(得分:1)

使用Prototype你可以做这样的事情

    document.observe('click', function(ev) {
        var el = Event.element(ev);
        if ((el !== $('thediv'))
                && !el.descendantOf(thediv)) {
            // hide div here
        }
    });

答案 1 :(得分:1)

您可以使用jQuery的nearest()来查看点击是否在菜单中: http://api.jquery.com/closest/

$('body').click(function(e){
  if($(e.target).closest('.myMenuDiv,.myMenuArrow').length === 0){
    // Close it
  }
});

答案 2 :(得分:1)

您可以使用jQuery is()函数来检测当前目标是否与特定选择器匹配:

$('ul.container li').click(function(e){
    if ($(e.target).is('.dropdown')) {
        //do something when clicked inside dropdown
    }
})