实现功能:
1 在一行中 动态添加div若干 (div多后一行显示不下会显示两行)
2 并对div进行行内拖动 插入到行中任意两个div之间 (最好能在两个可插入的div之间的下面显示一个三角板 提示插入点)
3 排列结束后 最后导出 该行中div的顺序排列的 div内容功能1 已经实现 
      提供可能使用到得资料
      1 使用jquery对div的动态添加删除
         $("#yxlist").append("<div id="+id+"_s"+" class=\"insideParent\">"+v+"</div>");
         $("#"+id+"_s").remove();
      2 让div不换行的  
         float: left;
功能2 和3 期待高手帮忙解决下

解决方案 »

  1.   

    <script type="text/javascript">
    <!--
    var IE=false,FF=false,W=window,D=document,H,B,GET="getElementsByTagName",GEI="getElementById",qq=0;
    function fold(){
    var e;
    e=fixE(e);
    if(e)element=fixElement(e);
    element=element.parentNode.parentNode;
    element.className=element.className.indexOf("hide")>0?"module":"module hide";
    }
    var Drag={
    draging : false,
    x : 0,
    y : 0,
    element : null,
    fDiv : null,
    ghost : null,
    addEvent : function(){var a=D[GET]("li");for(var i=a.length-1;i>-1;i--)if(a[i].className=="module")a[i].onmousedown=Drag.dragStart;},
    ix:2,iy:7,
    ox:6,oy:7,
    fx:6,fy:6,
    dragStart : function (e){
       if(Drag.draging)return;
       var e;
       e=fixE(e);
       if(e)element=fixElement(e);   /*********
       var k,s="";
       for(k in element)s+=k+" : "+element[k]+"<br/>";
       D.getElementById("bbb").innerHTML=s;
       **********/
       D.getElementById("aaa").innerHTML=element.parentNode.offsetTop+ ","+element.parentNode.offsetHeight;
       //测试
       if(element.className!="title")return;
       element=element.parentNode;
       Drag.element=element;
       //以上获得当前移动的模块
       Drag.x=e.layerX?e.layerX+Drag.fx:(IE?e.x+Drag.ix:e.offsetX+Drag.ox);
       Drag.y=e.layerY?e.layerY+Drag.fy:(IE?e.y+Drag.iy:e.offsetY+Drag.oy);
       //鼠标相对于模块的位置
       Drop.measure();
       if(e.layerX){Drag.floatIt(e);Drag.drag(e);}//fix FF
       B.style.cursor="move";
       D.onmousemove=Drag.drag;
       D.ondragstart=function(){window.event.returnValue = false;}
       D.onselectstart=function(){window.event.returnValue = false;};
       D.onselect=function(){return false};
       D.onmouseup=element.onmouseup=Drag.dragEnd;
       element.onmousedown=null;
    },
    drag : function (e){
       var e;
       e=fixE(e);
       if(!Drag.fDiv)Drag.floatIt(e);//for IE & Opera
       var x=e.clientX,y=e.clientY;
       Drag.fDiv.style.top=y+H.scrollTop-Drag.y+"px";
       Drag.fDiv.style.left=x+H.scrollLeft-Drag.x+"px";
       Drop.drop(x,y);
       //statu(e);
    },
    dragEnd : function (e){
       B.style.cursor="";
       D.ondragstart=D.onmousemove=D.onselectstart=D.onselect=D.onmouseup=null;
       Drag.element.onmousedown=Drag.dragStart;
       if(!Drag.draging)return;
       Drag.ghost.parentNode.insertBefore(Drag.element,Drag.ghost);
       Drag.ghost.parentNode.removeChild(Drag.ghost);
       B.removeChild(Drag.fDiv);
       Drag.fDiv=null;
       Drag.draging=false;
       Drop.init(D[GEI]("container"));
    },
    floatIt : function(e){
       var e,element=Drag.element;
       var ghost=D.createElement("LI");
       Drag.ghost=ghost;
       ghost.className="module ghost";
       ghost.style.height=element.offsetHeight-2+"px";
       element.parentNode.insertBefore(ghost,element);
       //创建模块占位框
       var fDiv=D.createElement("UL");
       Drag.fDiv=fDiv;
       fDiv.className="float";
       B.appendChild(fDiv);
       fDiv.style.width=ghost.parentNode.offsetWidth+"px";
       fDiv.appendChild(element);
       //创建容纳模块的浮动层
       Drag.draging=true;
    }
    }
    var Drop={
    root : null,
    index : null,
    column : null,
    init : function(it){
       if(!it)return;
       Drop.root=it;
       it.firstItem=it.lastItem=null;
       var a=it[GET]("ul");
       for(var i=0;i<a.length;i++){
        if(a[i].className!="column")continue;
        if(it.firstItem==null){
         it.firstItem=a[i];
         a[i].previousItem=null;
        }else{
         a[i].previousItem=a[i-1];
         a[i-1].nextItem=a[i];
        }
        a[i].nextItem=null;
        it.lastItem=a[i];
        a[i].index=i;
        a[i].firstItem=a[i].lastItem=null;
        var b=a[i][GET]("li");
        for(var j=0;j<b.length;j++){
         if(b[j].className.indexOf("module")==-1)continue;
         if(a[i].firstItem==null){
          a[i].firstItem=b[j];
          b[j].previousItem=null;
         }else{
          b[j].previousItem=b[j-1];
          b[j-1].nextItem=b[j];
         }
         b[j].nextItem=null;
         a[i].lastItem=b[j];
         b[j].index=i+","+j;
        }
       }
    },
    measure : function(){
       if(!Drop.root)return;
       var currentColumn=Drop.root.firstItem;
       while(currentColumn){
        var currentModule=currentColumn.firstItem;
        while(currentModule){
         currentModule.minY=currentModule.offsetTop;
         currentModule.maxY=currentModule.minY+currentModule.offsetHeight;
         currentModule=currentModule.nextItem;
        }
        currentColumn.minX=currentColumn.offsetLeft;
        currentColumn.maxX=currentColumn.minX+currentColumn.offsetWidth;
        currentColumn=currentColumn.nextItem;
       }
       Drop.index=Drag.element.index;
    },
    drop : function(x,y){
       if(!Drop.root)return;
       var x,y,currentColumn=Drop.root.firstItem;
       while(x>currentColumn.maxX)if(currentColumn.nextItem)currentColumn=currentColumn.nextItem;else break;
       var currentModule=currentColumn.lastItem;
       if(currentModule)while(y<currentModule.maxY){
        if(y>currentModule.minY-12){
         if(Drop.index==currentModule.index)return;
         Drop.index=currentModule.index;
         if(currentModule.index==Drag.element.index){if(currentModule.nextItem)currentModule=currentModule.nextItem;else break;}
         currentColumn.insertBefore(Drag.ghost,currentModule);
         Drop.column=null;
         window.status=qq++;
         return;
        }else if(currentModule.previousItem)currentModule=currentModule.previousItem;else return;
       }
       if(Drop.column==currentColumn.index)return;
       currentColumn.appendChild(Drag.ghost);
       Drop.index=0;
       Drop.column=currentColumn.index;
       window.status=qq++;
    }
    }
    var webNote={
    obj : null,
    canEdit : function(e){
       var e,element;
       e=fixE(e);
       element=fixElement(e);
       if(element.className!='webNote')return;
       if(typeof element.contentEditable!="undefined"){
        element.contentEditable=true;
        element.style.borderColor='red';
        element.focus();
        webNote.obj=element;
       }
    },
    cannotEdit : function(){
       if(!webNote.obj)return;
       if(typeof webNote.obj.contentEditable!="undefined"){
        webNote.obj.style.borderColor='#ffffe0';
        webNote.obj.contentEditable=false;
        webNote.obj=null;
       }
    }
    }
    function fixE(e){var e;e=e?e:(window.event?window.event:null);return e}
    function fixElement(e){var e;return e.target?(e.target.nodeType==3?e.target.parentNode:e.target):e.srcElement;}
    onload=function(){
    B=D[GET]("body")[0];
    H=D[GET]("html")[0];
    Drop.init(D[GEI]("container"));
    Drag.addEvent();
    }
    function statu(e){
    var e,element;
    element=fixElement(e);
    var aa=D.getElementById("aaa");
    aa.innerHTML="e.xy:("+e.x+","+e.y+")<br/>e.offsetXY:("+e.offsetX+","+e.offsetY+")<br/>e.clientXY:("+e.clientX+","+e.clientY+")<br/>element.offsetLeftTop:("+element.offsetLeft+","+element.offsetTop+")<br/>e.layerXY:("+e.layerX+","+e.layerY+")";
    }
    //-->
    </script>
    <style type="text/css">
    body,table,td,th,input,textarea,button,select{font:13px/16px Verdana,"宋体",sans-serif;}
    table{border-collapse:collapse;}
    p{margin:0px;}
    .container{margin:8px;}
    .column{width:33%;margin:0px;padding:0px;float:left;overflow:hidden;}
    .module{margin:5px;padding:0px;border:1px solid #dcd;position:relative;background-color:white;list-style:none;}
    .title{background-color:#edf;padding:1px 0px;width:100%;overflow:hidden;cursor:move;z-index:0;font-weight:bold;}
    .cont{padding:3px;overflow:hidden;}
    .hide .cont{display:none;}
    .pageTitle{font-weight:bold;text-align:center;}
    input.pageTitle{display:none;border:0px;padding:0px;width:100%;}
    .webNote{background-color:#ffffe0;border:1px solid #ffffe0;}
    textarea.webNote{display:none;overflow:hidden;padding:0px;border:0px;padding:0px;}
    .ghost{border:1px dashed red;}
    .float{position:absolute;z-index:100;margin:0px;padding:0px;overflow:hidden;list-style:none;-moz-opacity:.75;filter:Alpha(opacity=75);}
    </style>
    <!--[if IE]>
    <script type="text/javascript">
    IE=true;
    </script>
    <style type="text/css">
    input.pageTitle{margin:-1px;}
    </style>
    <![endif]-->
    <![if !IE]><![endif]>
    </head>
    <body>
    <center><span class="pageTitle" onclick="with(this.nextSibling){value=this.innerHTML;style.display='block';focus()};this.style.display='none';">You can input a topic here!</span><input class="pageTitle" onblur="with(this.previousSibling){D.title=innerHTML=this.value?this.value:'Demo';style.display='block';};this.style.display='none'" /></center>
    <div class="container" id="container">
    <ul class="column">
       <li class="module">
        <div class="title"><span onclick="fold()">+</span>&nbsp;Coodinate</div>
        <div class="cont" id="aaa">content</div>
       </li>
       <li class="module">
        <div class="title"><span onclick="fold()">+</span>&nbsp;contentEditable</div>
        <div class="cont" onclick="alert('this.contentEditable:'+this.contentEditable)">click here</div>
       </li>
       <li class="module">
        <div class="title"><span onclick="fold()">+</span>&nbsp;long long ago</div>
        <div class="cont">有形者 生于无有 有归于无<br/>是以 凡妄<br/>若是能见诸相非</div>
       </li>
    </ul>
    <ul class="column">
       <li class="module">
        <div class="title"><span onclick="fold()">+</span>&nbsp;this.parentNode</div>
        <div class="cont"><button onclick="alert(this.parentNode.parentNode.parentNode.innerHTML)">parentNode</button></div>
       </li>
       <li class="module">
        <div class="title"><span onclick="fold()">+</span>&nbsp;webNote</div>
        <div class="cont"><div class="webNote" onblur="webNote.cannotEdit()" onclick="webNote.canEdit(event)">You can note something here.<br/><br/>从前有座山</div><textarea class="webNote"></textarea></div>
       </li>
       <li class="module">
        <div class="title"><span onclick="fold()">+</span>&nbsp;Google</div>
        <div class="cont"><center><a href="http://www.google.com" style="font:bold 31px/2 Arial;">Google</a></center></div>
       </li>
    </ul>
    <ul class="column">
       <li class="module">
        <div class="title"><span onclick="fold()">+</span>&nbsp;pia~~</div>
        <div class="cont">十里平湖霜满天<br/>寸寸青丝愁华年<br/>对月形单忘相护</div>
       </li></ul>
    </div>
      

  2.   

    我邮箱[email protected] 谢谢 谢谢