Перетащите содержащий div при перетаскивании выделите дочерние элементы содержащего div с помощью jQuery. - PullRequest
1 голос
/ 22 ноября 2010

Рассмотрим следующую структуру HTML:

<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 .calendar-container ТОЛЬКО во время перетаскивания div .month-text.Я не хочу перетаскивать .calendar-container, когда перетаскивается любой другой div внутри .calendar-container, кроме .month-text.Я использую последнюю версию этого плагина для использования события перетаскивания.

1 Ответ

3 голосов
/ 22 ноября 2010

Намного проще было бы использовать:

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

Вам понадобится "перетаскиваемое" взаимодействие в плагинах пользовательского интерфейса jQuery, документация здесь для справки: http://jqueryui.com/demos/draggable/

...