Не могу сбросить JQuery UI помощник на сбрасываемый - PullRequest
6 голосов
/ 11 января 2011

Почему этот код не позволяет мне сбросить помощника в область для сбрасывания?

  $(".product").draggable({
    revert: 'invalid',
    cursorAt: { top: -12, left: -20 },
    helper: function(event) {
      return $('<div class="product_helper"></div>');
    }
  });
  $(".droppable").droppable({
    accept: '.product_helper',
    drop: function(event, ui) {
      $(this).append( ui.helper );
    }
  });

Возможно ли даже сбросить помощника в область для сброса?

Ответы [ 2 ]

11 голосов
/ 11 января 2011

Полностью можно удалить клон помощника, но сам помощник (как в вашем примере) не может быть отброшен.

Вот jsFiddle, демонстрирующий сброс клонированного помощника: http://jsfiddle.net/jKabn/1/

Вот соответствующий код:

  $(".product").draggable({
    revert: 'invalid',
    cursorAt: { top: -12, left: -20 },
    helper: function(event) {
      return $('<div class="helper">Helper</div>');
    }
  });
  $(".droppable").droppable({
    drop: function(event, ui) {
           //clone and remove positioning from the helper element
           var newDiv = $(ui.helper).clone(false)
               .removeClass('ui-draggable-dragging')
               .css({position:'relative', left:0, top:0});  

           $(this).append(newDiv);
    }
  });

Помощник удаляется после выполнения отбрасывания в jquery.Чтобы сохранить его, вам нужно удалить перетаскиваемый конкретный CSS и позиционирование, а также клонировать элемент.В jsFiddle также есть демонстрация для удаления «перетаскиваемого» элемента (не то, чтобы это было особенно важно для вашего вопроса, я просто добавил его для себя).

Надеюсь, что поможет

1 голос
/ 19 января 2011

У меня была проблема с перетаскиваемым элементом, слишком широким, чтобы его можно было перетаскивать на элемент, который можно сбрасывать, если для параметра допуска установлено значение по умолчанию «intersect».

«intersect» означает перетаскиваемый элементбыть сброшенным, когда 50% его превыситИ это невозможно, если его ширина в два с лишним раза больше.

Мои перетаскиваемые объекты имели переменное значение, поэтому их ширина варьировалась, и их можно было также отбрасывать.Вместо этого я использовал «указатель», и он проходит там, где находится мышь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...