0

我有一个嵌套在 div 中的动态文本区域。div 是可调整大小和可拖动的。我为 div 创建了一个删除图标,但希望删除图标位于 div 的 NE 角并在调整 div 大小时移动。

我用这段代码创建了 div、textarea 和 icon

    function NewTextArea(id)
    {   

    id=id+i;
    var newdiv = document.createElement('div');
    newdiv.setAttribute('id', id);
    newdiv.setAttribute('class', 'dragbox');
    newdiv.setAttribute('iterate',i);
    newdiv.style.position = "relative";
    newdiv.style.top = p;
    newdiv.style.left = p;
    newdiv.style.cursor='move';
    newdiv.innerHTML = "</div><br><textarea id='"+i +"'  onDblClick='editor1("+i+")' name='textarea["+i +"]' class='textarea1' style='position:absolute; top:10px;left:0px;overflow-y: auto;background-color:transparent;border: 2px dashed #000; '>some text here"+i+"</textarea>";
    newdiv.innerHTML=newdiv.innerHTML+"<br><input type='hidden' value='"+i+"' name='id["+i+"]'><br><input name='box_type["+i+"]' type='hidden' value='text'/>"; 
    newdiv.innerHTML=newdiv.innerHTML+"<br><input type='hidden' value='300' name='width["+i+"]' id='width"+i+"'><br><input type='hidden' value='300' name='height["+i+"]' id='height"+i+"'>";               
    newdiv.innerHTML=newdiv.innerHTML+"<br><input type='hidden' value='0' name='left["+i+"]' id='left"+i+"'><br><input type='hidden' value='0' name='top["+i+"]' id='top"+i+"'>"; 

    document.getElementById("frmMain").appendChild(newdiv); 

    var but=document.createElement('input');
    but.setAttribute('type','button');
    but.setAttribute('class','removebutton');       

    but.onclick=function(){
        if(confirm('Really delete?'))
        {
        document.getElementById("frmMain").removeChild(newdiv);
        document.getElementById(id).removeChild(but);
        document.getElementById(id).removeChild(newbr);
        }       
    }

    newbr=document.createElement('BR');
    document.getElementById(id).appendChild(newbr);
    document.getElementById(id).appendChild(but);



    $(function()
    {
        $("#"+i).resizable({autoHide:true})
        $("#"+id).hover(function () {
            $("#"+i).css('border', '2px dashed #000');         
        });
        $("#"+id).mouseleave(function () {
            $("#"+i).css('border', '0px dashed #000');         
        });
        $("#"+i).resizable(
            {
                stop: function(event, ui)
                {
                    var width = ui.size.width;
                    var height = ui.size.height;
                    // alert("width="+width+"height="+height);
                    ValProportions(width,height,ui.element.context.id);           
                }
            });

        $( "#"+id ).draggable(
            {
                stop: function(event, ui)
                {
                    Stoppos = $(this).position();
                    $("div#stop").text("STOP: \nLeft: "+ Stoppos.left + "\nTop: " + Stoppos.top);
                    // alert("left="+Stoppos.left+"top="+Stoppos.top);
                    ValPostion(Stoppos.left,Stoppos.top,$(this).attr('iterate'));   
                }
            }); 
        $("#"+i).draggable({handle:"#handle"}); 
    });  

    function ValProportions(defaultwidth, defaultheight,id)  { 
        $('#width'+id).val(defaultwidth);
        $('#height'+id).val(defaultheight);
    }

   function ValPostion(defaultleft,defaulttop,id)  {  
        $('#left'+id).val(defaultleft);
        $('#top'+id).val(defaulttop);
    }

    p=p+25;     
    i++;
4

2 回答 2

1

添加样式

.dragbox {
    position: relative;
}

.removebutton {
    position: absolute;
    top: 5px;
    right: 5px;
}
于 2013-03-25T15:02:47.290 回答
1

在按钮上使用样式。

float:right

将您的按钮放在 div 的右侧。只需确保将按钮作为 div 内的第一个元素。

于 2013-03-25T15:29:26.147 回答