2011-11-14 39 views
0

如果點擊不在rl_menu /它的任何子元素(.comment,.rl_arrow,等等)如何在未點擊某個元素時對mousedown執行操作

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. 
    } 
} 

但是當我檢查目標時,目標是文件。

總括:

Anywhere的文檔中,當按下鼠標時,TBR.Menu.hide()應該被執行。但如果點擊在#rl_menu之內,則不應執行TBR.Menu.hide()

我該怎麼做呢?

回答

3

你可以寫下來一點easyer?

$(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/

0

如果事件冒泡的event.target將指向元素事件勢必。要獲得點擊元素,請使用event.originalEvent.target

相關問題