2012-09-10 104 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