Verwenden der neuesten jQuery/UI, die bei Google gehostet werden. Ich habe das folgende Markup bekam:jQuery Drag/Drop-Problem: mousemove Event nicht verbindlich für einige Elemente
<ul id="tree">
<li><a href="1/">One</a></li>
<li><a href="2/">Two</a></li>
</ul>
Und die folgende 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
});
});
Wenn ich die erste li
über die zweite ziehen, wird die MouseMove-Funktion ausgelöst (und Firebug protokolliert die Ausgabe). Aber wenn ich die zweite li
über die erste ziehe, wird die Mousemove-Funktion nicht ausgelöst. Sie können dies live unter http://jsbin.com/ivala sehen. Gibt es einen Grund dafür? Sollte ich das mousemove-Ereignis auf andere Weise einfangen?
Edit: Es scheint, als wäre das mouse move() -Ereignis für frühere Elemente nicht bindend, als das, das gerade gezogen wird (sollte beim MouseOver gebunden werden).
Ich öffnete den Link und manchmal ziehen die zweite Li über den ersten Firebug protokolliert die Ausgabe. Aber es ist viel einfacher, den ersten über den zweiten zu ziehen. –
Ich habe das auch bemerkt. Es ist kein regelmäßiges Verhalten; sehr rätselhaft. – saturdayplace
Was möchten Sie erreichen, indem Sie das mousemove-Ereignis hinzufügen? – PetersenDidIt