Показать сообщение отдельно
  #1 (permalink)  
Старый 07.10.2011, 12:58
Новичок на форуме
Отправить личное сообщение для Danil Посмотреть профиль Найти все сообщения от Danil
 
Регистрация: 30.04.2011
Сообщений: 6

запретить срабатывание события дочернего элемента, при перемещении родительского
Здравствуйте.

Есть некий блок, с кнопками:

<div id="cssch_box">
   <div id="box_menu">
      <div class="button"">position</div>
      <div class="button">fields</div>
      <div class="button">background</div>
      <div class="button">text</div>
      <div class="close">close</div>
   </div>
   <div id="box_content">
      какие-то параметры
   </div>
</div>

мне нужно, что бы пользователь мог свободно перемещать его в пределах страницы, я пишу:
$('#cssch_box').draggable({containment: 'parent'});

все работает, только одно "но", если я "подцепляю" и "тащу" контейнер за кнопку, происходит срабатывание события на этой кнопке, чего мне не надо

иными словами, мне нужно что-бы я мог перетаскивать этот блок, кликая на любую его часть, но что-бы при этом не происходило срабатывания какого-либо дочернего элемента, а событие доч. элементов происходило только в том случае, когда перемещение отсутствует

можно конечно каждому дочернему элементу, цеплять такую штуку:
var coords = $('#cssch_box').offset();

$('.button').bind({
   mouseup: function(){
      //проверка на изменения координат блока
      if($('#cssch_box').offset().top == coords.top && $('#cssch_box').offset().left == coords.left){
            //собственная ф-я элемента
      }
      coords = $('#cssch_box').offset();
   }
});


но мне кажется это не очень правильно, хотя и работает.

Как можно это сделать проще?
Ответить с цитированием