日期:2014-05-16  浏览次数:20369 次

关于div拖拽,有经验看看
[code=JScript][/code]
new Draggable("div1",{revert:true});
new Draggable("div2",{revert:true});
new Draggable("div3",{revert:true});
new Draggable("div4",{revert:true});
new Draggable("div5",{revert:true});
new Draggable("div6",{revert:true});
new Draggable("div7",{revert:true});
new Draggable("div8",{revert:true});
new Draggable("div9",{revert:true});
new Draggable("div10",{revert:true});
Droppables.add("dustbox", {
accept:"item-area",
onDrop: function(draggable, droppable) {
 alert('ドロップされたのは、' + draggable.firstChild.nodeName);
}
});




function ondrop(draggable, droppable){
  var child = droppable.firstChild;
  droppable.removeChild(child);
  
  var parent = droppable.parentNode;
  parent.appendChild(child);
  droppable.appendChild(draggable);

}


后台的.js文件应该都正确,现在已经能够实现div的拖动,但放置的时候,不执行
function ondrop而且draggable.firstChild.nodeValue也取不到值。。。

说得也不明白,希望有经验的来分析下。。。。


------解决方案--------------------
帮LZ顶
------解决方案--------------------
帮顶了~
------解决方案--------------------
/*<层的拖动>*/
var ms=0;
function dragDiv(obj){
if(event.srcElement.type!='text')//选中TEXT控件 不拖动
{
ms=obj;
event.srcElement.setCapture();
x=document.all(ms).style.pixelLeft-event.x;
y=document.all(ms).style.pixelTop-event.y;
}
}

function document.onmousemove(){
if(ms){
document.all(ms).style.pixelLeft=x+event.x;
document.all(ms).style.pixelTop=y+event.y;
}
}

function document.onmouseup(){
if(ms){
event.srcElement.releaseCapture();
ms=0;
}
}
/*</层的拖动>*/



使用方法

<div id="div1" onmousedown="dragDiv('div1')" >aaaaaa</div>
------解决方案--------------------
JScript code
/**
 * Drag.js: drag absolutely positioned HTML elements.
 *
 * This module defines a single drag( ) function that is designed to be called
 * from an onmousedown event handler. Subsequent mousemove events will
 * move the specified element. A mouseup event will terminate the drag.
 * If the element is dragged off the screen, the window does not scroll.
 * This implementation works with both the DOM Level 2 event model and the
 * IE event model.
 *
 * Arguments:
 *
 *   elementToDrag: the element that received the mousedown event or
 *     some containing element. It must be absolutely positioned. Its
 *     style.left and style.top values will be changed based on the user's
 *     drag.
 *
 *   event: the Event object for the mousedown event.
 **/
function drag(elementToDrag, event) {
    // The mouse position (in window coordinates)
    // at which the drag begins
    var startX = event.clientX, startY = event.clientY;

    // The original position (in document coordinates) of the
    // element that is going to be dragged. Since elementToDrag is
    // absolutely positioned, we assume that its offsetParent is the
    // document body.
    var origX = elementToDrag.offsetLeft, origY = elementToDrag.offsetTop;

    // Even though the coordinates are computed in different
    // coordinate systems, we can still compute the difference between them
    // and use it in the moveHandler( ) function. This works because
    // the scrollbar position never changes during the drag.
    var deltaX = startX - origX, deltaY = startY -