JQuery Droppable / Draggable - PullRequest
       12

JQuery Droppable / Draggable

0 голосов
/ 12 ноября 2008

На данный момент у меня есть набор div, динамически генерируемых php, и все они имеют свои идентификаторы, начинающиеся с 'itembox', с добавленным номером счета. У меня есть область отбрасываемого мусорного ведра на странице, так что пользователь может удалить отдельный итератор путем fdragging и падения в корзину.

Моя проблема заключается в том, что, по-видимому, dropppable не будет активироваться, когда я перетаскиваю оригинал, в то время как он будет работать (отлично), когда у меня установлен помощник: «клон». К сожалению, тем не менее, при перетаскивании функция клонирования берет свой клон с первой итерации itembox, независимо от того, какой именно itmbox фактически перетаскивается.

Таким образом, я ищу решение, чтобы заставить droppable принять оригинал или заставить клонирующую функцию взять свой клон из итератора фактически перетаскиваемого.

Ответы [ 2 ]

1 голос
/ 12 ноября 2008

Я полагаю, что проблема должна заключаться в опции accept вашего сбрасываемого инициализатора. Просто попробуйте следующее:

$('#mydroppable').droppable(
{
    accept: function() { return true; },
    drop: function () { alert("Dropped!"); }
});

Теперь это будет принимать все, поэтому вам, вероятно, следует реализовать некоторую фильтрацию в функции accept, но тем не менее это должно сработать.

0 голосов
/ 17 ноября 2011

Вы также можете попробовать приведенное ниже решение.

<script type="text/javascript">
$(document).ready(function(){
    $('.srcfield').draggable({
        revert: true    
    });

    $('#trash').droppable({
        accept : ".srcfield",
        over: function(){
            $(this).removeClass('out').addClass('over');
        },`enter code here`
        out: function(){
            $(this).removeClass('over').addClass('out');
        },
        drop: function(ev, ui){
            //var answer = confirm('Delete this item?');
            var theTitle = $(ui.draggable).attr("title");
            $(this).html("<u>"+theTitle+"</u><br/> is deleted!");
        }
    });
});
</script>


<body>
    <div id="trash" class="out">
            <span>Trash</span>
    </div>
    <div id="sourcefields">
            <div class="srcfield" title="First Name"><span>First Name</span></div>
            <div class="srcfield" title="Last Name"><span>Last Name</span></div>
            <div class="srcfield" title="Age"><span>Age</span></div>
    </div>
</body>
...