2010-11-22 99 views
1

考慮以下HTML結構:拖動一個內含div

<div class="calendar-container"> 
    <div class="month-heading-wrapper"> 
     <div class="month-text"> 
      <p>Some text would go here</p> 
     </div> 
     <div class="something-else"> 
      <p>When this is clicked on and dragged, it SHOULD NOT move anything</p> 
     </div> 
    </div> 
</div> 

隨着下面的JavaScript(使用jQuery):

$('.calendar-container .month-heading-wrapper .month-text').unbind(); 

    $('.calendar-container .month-heading-wrapper .month-text').bind('drag', function(event){ 

var offset = $('.calendar-container').offset(); 

$('.calendar-container').css({ 
      'top': (offset.top + event.pageY) + 'px', 
      'left': (offset.left + event.pageX) + 'px' 
    }); 

});

我的目標是隻在div.month文本被拖動時才移動div .calendar-container。當除.month-text之外的任何其他div .calendar-container中的其他div被拖動時,我不想拖動.calendar-container。我正在使用最新版本的this插件來利用拖動事件。

+0

查找到jQuery UI的。他們實現的可拖拽是非常可擴展的 – Stephen 2010-11-22 19:31:09

回答

3

一個更簡單的方法是使用:

$('.calendar-container').draggable({handle:'.calendar-container .month-heading-wrapper .month-text'}); 

您會在這裏需要在jQuery UI的插件的「可拖動」互動,文檔,以供參考:http://jqueryui.com/demos/draggable/

+0

+1非常感謝你,我一直在嘲笑我的頭一陣子,你的代碼工作完美! – bmarti44 2010-11-22 19:46:06