2012-09-10 105 views
0

由於拖動事件停止,我必須查明我的div是否與任何其他節點發生碰撞。所以,在「停止」事件中,我寫了一個循環來檢查與同類型項目的衝突。jQuery:從結果列表中排除「this」

$('.article').draggable({ 

    stop: function(event, ui){ 

     $(".article").each(function (i) { 

      if(this == ui.helper){ 
       return; 
      } 

      // Test collisions 
     });   
    } 
}); 

現在,我無法找到從自己的循環中排除自己的方式。我預計這和ui.helper是一樣的,但它們被認爲是獨立的元素。我應該怎麼做?

感謝,

+0

你要點如何能碰撞中的兄弟姐妹另一種可能的方式是什麼?你能提供給我們一個[小提琴示例](http://jsfiddle.net/)嗎? – alexbusu

+1

你的例子不起作用,因爲'this'是一個原始DOM節點,而ui.helper是一個jQuery對象。另外,你不能比較兩個jQuery對象:'$('body')=== $('body')// false'。 –

+0

@ AlexanderV.B。使用在這裏找到的功能:http://stackoverflow.com/questions/5419134/how-to-detect-if-two-divs-touch-with-jquery – Jem

回答

6

我想你想從$('.article')排除this。如果是這樣,這可以很容易地與not方法實現:

$('.article').not(this).each(function (i) { 
+0

很酷,謝謝你 – Jem

1

時,結果都是一樣的父

$(this).index() == $(ui.helper).index() 
+0

Interresting太,thx – Jem