2013-04-04 2 views
1

У меня есть эта проблема с использованием Jquery drag & drop. У меня есть два элемента div, уложенных один над другим. Нижний div является недоступным и больше. Если я отбрасываю элемент в верхнем div, нижний div обрабатывает dropp.Событие остановки остановки в Jquery drag & drop

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

Я попытался использовать stopPropagation() на верхнем div, но это не сработало.

Somekind простой пример: http://jsfiddle.net/e87wS/13/

ответ

1

Edited ответ

Использование over и out, чтобы отключить и включить другой DIV. greedy означает, что область сбрасывания будет единственной, которая работает, и tolerance: touch означает, что до тех пор, пока объект перетаскивания касается касающейся области, он будет там падать.

Это будет выглядеть следующим образом:

$('#div2').droppable({ 
    drop: function (event, ui) { 
     alert("droppedHere"); 
    }, 
    greedy: 'true', 
    tolerance: 'touch', 
    over: function (event, ui) { 
     $("#div1").droppable("disable") 
    }, 
    out: function (event, ui) { 
     $("#div1").droppable("enable") 
    } 
}); 

$('#div1').droppable({ 
    drop: function(event, ui){ 
     alert("droppedThere"); 
    } 
}); 

и скрипку: http://jsfiddle.net/e87wS/15/

+0

мне нужен красный DIV обрабатывать падение. Тогда параметр допуска не срабатывает. http://jsfiddle.net/e87wS/8/ Дает вам аллер, даже если он упал на зеленый! – Jacob

+0

Вы могли бы объяснить немного больше, почему нижний div обрабатывает капли? и как вы это делали? –

+0

Предположим, что изображение, которое нужно перетащить, должно быть помещено в зеленый div ... Когда вы перетаскиваете его только как litle, красный div принимает его. Я хочу, чтобы красный div принял его, только если вытащил из зеленого div. – Jacob

Смежные вопросы