2013-04-21 197 views

回答

0

我想通了。但讓我知道是否有人有更好的解決方案,因爲我不太瞭解JQuery的工作原理。

function makeDraggable() 
{ 
    $('.draggableThing').draggable({ 
     grid:[20,20], 
     drag:function(){ 
      if (
       $(this).position().top>$('.theDivToDragOn').position().top 
       &&$(this).position().top<$(".theDivToDragOn").position().top+$(".theDivToDragOn").innerHeight() 
       &&$(this).position().left>$('.theDivToDragOn').position().left 
       &&$(this).position().left<$(".theDivToDragOn").position().left+$(".theDivToDragOn").innerWidth() 
      ){ 
       $(this).toggleClass('draggableThing').toggleClass('smoothDraggable'); 
       $('.smoothDraggable').draggable({ 
        grid:[1,1], 
        drag:function(){ 
         if (
          $(this).position().top<$('.theDivToDragOn').position().top 
          ||$(this).position().top>$(".theDivToDragOn").position().top+$(".theDivToDragOn").innerHeight() 
          ||$(this).position().left<$('.theDivToDragOn').position().left 
          ||$(this).position().left>$(".theDivToDragOn").position().left+$(".theDivToDragOn").innerWidth() 
         ){ 
         $(this).toggleClass('draggableThing').toggleClass('smoothDraggable'); 
         makeDraggable(); 
        } 
       }); 
      } 
     } 
    }) 
} 
相關問題