Использование последней версии jQuery / UI, размещенной в Google. У меня есть следующая разметка:
<ul id="tree">
<li><a href="1/">One</a></li>
<li><a href="2/">Two</a></li>
</ul>
И следующий javascript:
$(document).ready(function(){
// Droppable callbacks
function dragOver(overEvent, ui_object) {
$(this).mousemove(function(moveEvent){
console.log("moved over", this);
});
}
function drop_deactivate() {
$(this).unbind();
}
function drag_out() {
$(this).unbind();
}
// Actual dragging
$("#treeContainer li").draggable({
revert: true,
revertDuration: 0
});
// Actuall dropping
$("a").droppable({
tolerance: "pointer",
over: dragOver,
deactivate: drop_deactivate,
out: drag_out
});
});
Если я перетаскиваю первый li
вниз над вторым, запускается функция mousemove (и firebug регистрирует вывод). Но если я перетащу второй li
вверх над первым, функция mousemove не сработает. Вы можете увидеть это в прямом эфире на http://jsbin.com/ivala. Есть ли причина для этого? Должен ли я перехватывать событие mousemove другим способом?
Редактировать: Похоже, что событие mousemove () не является обязательным для более ранних элементов, чем тот, который в данный момент перетаскивается (должен быть связан при наведении мыши).