2013-04-23 54 views
0

我試圖查看$(e.target)!=是否爲我創建的div對象。

這是我的目標

var newDiv = $("<div>").addClass("dropDown"); 

我試圖給該對象配合我的點擊命令。

$(document).on("click", function(e){ 
    if(!$(e.target) == newDiv) 
    { 
     //Do something 
    } 
}); 

我該如何引用某種可以匹配或不匹配的名稱?

+0

[你嘗試過什麼(http://mattgemmell.com/2008/12/08 /什麼具備的,你試了/)? – Phil 2013-04-23 04:54:30

回答

2

您可以使用is方法:

$(document).on("click", function (e) { 
    if (!$(e.target).is(newDiv)) { 
     // ... 
    } 
}); 

http://jsfiddle.net/eRPfr/

+0

非常好的答案,非常感謝! – Majo0od 2013-04-23 05:02:27

+0

如果你打算這樣做,那麼這樣會更高效一些:'if(!newDiv.is(e.target))''因爲你不必爲了比較而創建一個新的jQuery對象,儘管直接比較DOM對象就好像在我的回答中那樣可能更有效率。 – jfriend00 2013-04-23 05:19:54

+0

@ jfriend00是的,你說得對,你的建議比我的效率高。 – undefined 2013-04-23 05:22:43

2

這行代碼:

if(!$(e.target) == newDiv) 

是在比較兩個不同的jQuery的對象,看看他們是否是同一個對象。這永遠不會是真的,因爲它們不是同一個對象。這比較不看看,如果在每個jQuery對象的DOM對象是相同的,但你可以是這樣做的:

if(e.target != newDiv[0]) 
+0

+1不夠jQuery。 – undefined 2013-04-23 05:06:05

相關問題