如果未单击某个元素,如何对mousedown执行操作

时间:2011-11-14 14:02:43

标签: javascript jquery

如果点击不在rl_menu /任何子元素(.comment,.rl_arrow等)上,我想执行命令的代码如下

TBR.mouse_down = function(e){
    target = $j(this)
    if (target != $j("#rl_menu") && target != $j("#rl_menu .comment") &&
    target != $j("#rl_menu .change") && target != $j("#rl_menu .rl_arrow_border") &&
    target != $j("#rl_menu .rl_arrow")){
        TBR.Menu.hide(); // this needs to be triggered when the menu is not clicked on.
    }
}

但是当我检查目标时,目标就是文件。

回顾一下:

文档中的任何位置,当按下鼠标时,应执行TBR.Menu.hide()。但如果点击位于#rl_menu范围内,则不应执行TBR.Menu.hide()

我是以错误的方式解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

你可以写一点吗?

$(function(){

    $("body").click(function(e){
        var t = $(e.target);
        if( !t.is("#rl_menu") && t.closest("#rl_menu").length == 0)
        {
            alert("CLICKD OUTSIDE THE GREEN")
        }
    });
});

现场演示:http://jsfiddle.net/JBuJm/

答案 1 :(得分:0)

如果事件冒泡,event.target将指向要绑定的元素事件。要点击元素,请使用event.originalEvent.target