.hide () /. show () и Droppable - PullRequest
       13

.hide () /. show () и Droppable

3 голосов
/ 27 июня 2010

У меня проблема с тем, что элемент вызывает .show (), когда перетаскиваемые перетаскиваемые триггеры не позволяют мне попасть в сбрасываемый объект. Как я могу это исправить?

$(document).ready(function() {
$(".folder").droppable({
        greedy: true,
        drop: function(event, ui) {
            $(".folder").hide();
        },
        tolerance: 'touch'
    });

$(".folder").hide();
$(".draggable_folder").draggable({ 
    cursor: 'move',
    cursorAt: { top: 8, left: 0 },
    drag: function(event, ui) {
        $(".folder").show();
    },
    helper: function(event) {
        var subject = $(this).find('.message_subject').html();
        return $('<div class="ui-widget-header" style="max-width: 100px;">'+subject+'</div>');
    }
});
});

<ul>
    <li class="folder">{$folders[f_list].name}</a><div style="clear:both"></div></li>
</ul>
<table>
    <tr class="draggable_folder"><td>test</td></tr>
</table>

1 Ответ

2 голосов
/ 27 июня 2010

В $(".draggable_folder").draggable, измените drag: function(event, ui) на start: function(). Это сделает .folder видимым, и сброс станет активным. Окончательный код для перетаскивания:

$(".draggable_folder").draggable({ 
  cursor: 'move',
  cursorAt: { top: 8, left: 0 },
  start: function() {
    $(".folder").show();
  },
  helper: function(event) {
    var subject = $(this).find('.message_subject').html();
    return $('<div class="ui-widget-header" style="max-width: 100px;">'+subject+'</div>');
  }
});
...