Вы можете попробовать jquery-collision plus jquery-ui-draggable-collision .Полное раскрытие: я только что написал и выпустил их на sourceforge.
Первый позволяет это:
var hit_list = $("#collider").collision(".obstacle");
, который является списком всех ".obstacle", которые перекрывают "#collider".
Второй позволяет:
$("#collider").draggable( { obstacle: ".obstacle" } );
, который дает (помимо прочего) событие "столкновения" для привязки к:
$("#collider").bind( "collision", function(event,ui){...} );
И вы даже можете установить:
$("#collider").draggable( { obstacle: ".obstacle", preventCollision: true } );
, чтобы "#collider" никогда не перекрывал любой ".obstacle" при перетаскивании.