新人求助!如何实现填充多个div?

术巨酷 2015-01-19 07:07:43
红色div拖动到左边的div中可以填充背景色,但是一次只能填充一个。
现在创建了一个下拉列表可以选择填充的个数,拖动到对应div处,依次填充对应的div,请问该怎么实现啊?


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="D:/DHC/lib/ligerUI/skins/Aqua/css/ligerui-all.css" rel="stylesheet" type="text/css" />
<script src="D:/DHC/lib/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="D:/DHC/lib/ligerUI/js/core/base.js" type="text/javascript"></script>
<script src="D:/DHC/lib/ligerUI/js/plugins/ligerDrag.js" type="text/javascript"></script>
<style type="text/css">
.box
{
width: 80px;height: 30px;border-style:solid;border-width:1px;float: left;margin: 5px;
}
.receive
{ width: 150px; height: 50px; border-style:solid;border-width:1px;margin: 4px;
}

</style>
<script type="text/javascript">
//显示select对应个数div
function showDiv(){
//将div内的元素清空
document.getElementById("sel_div").innerHTML="";
//根据option的值创建div
var n=document.getElementById("sel").value;
for(var i=1;i<=n;i++){
var d=document.createElement("div");
d.style.background = "red";
d.style.width="80px";
d.style.height="30px";
d.style.margin="5px";
d.className="box";
d.setAttribute("id",i);
document.getElementById("sel_div").appendChild(d);
}
}
//拖动
$(function ()
{
$('.boxx,.box,.receive').ligerDrag({ proxy: 'clone', revert: true, receive: '.receive',
onStartDrag: function ()
{
this.set({ cursor: "not-allowed" });
},
onDrop: function (receive, source, e)
{
if (!this.proxy) return;
this.proxy.hide();
var bgcolor = this.proxy.css('backgroundColor');
if (this.target.hasClass("receive"))
{
this.target.css("backgroundColor", $(receive).css("backgroundColor"));
}
$(receive).css("backgroundColor", bgcolor);
}
});
});
</script>
</head>
<body style="padding: 10px">
<div style=" position:absolute;border-style:solid;border-width:1px;left:250px;top: 100px;">
<select id="sel" onchange="showDiv()">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</div>

<div style=" position:absolute; top:160px; ">
<div id="1" class="receive">1</div>
<div id="2" class="receive">2</div>
<div id="3" class="receive">3</div>
<div id="4" class="receive">4</div>
<div id="5" class="receive">5</div>
<div id="6" class="receive">6</div>
<div id="7" class="receive">7</div>
<div id="8" class="receive">8</div>
<div id="9" class="receive">9</div>
<div id="10" class="receive">10</div>
<div id="11" ></div>
</div>

<div id="show" class="box" style=" position:absolute;left:350px;top: 160px;background: red;"></div>
<div id="sel_div" class="boxx" style=" position:absolute;left:350px;top: 200px;width: 80px;"></div>
<div class="box" style=" position:absolute;left:450px;top: 160px;"></div>
</body>
</html>


...全文
262 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
天雷舞风hehe 2015-01-21
  • 打赏
  • 举报
回复
拖动需要用drag&drop相关接口
danielinbiti 2015-01-20
  • 打赏
  • 举报
回复
从ligerui的源码上看,从拖动的角度是不可能。得做一定的改写。 对ligerDrag的_drag做改写。 思路可以这样 1、对于要改变颜色的DIV做一个选中状态,比如做一个style selected 2、然后在_drag判断receive是不是selected,如果是,则获取所有的selected的div对receiveEntered都标记true 当然,这么改造后,对所有 receiveEntered设置成false的地方也得改造。

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧