除使用draggable插件拖曳任意元素外,还可以调用droppable UI插件将拖曳后的任意元素放置在指定区域中,类似购物车效果,调用格式如下:
$(selector).droppable({options})
selector参数为接收拖曳元素,options为方法的配置对象,在对象中,drop函数表示当被接收的拖曳元素完全进入接收元素的容器时,触发该函数的调用。
例如,在页面中,通过调用droppable插件将“产品区”中的元素拖曳至“购物车”中,同时改变“购物车”的背景色和数量值,如下图所示:
在浏览器中显示的效果:
从图中可以看出,先调用draggable插件任意拖曳“产品区”的元素,然后,调用droppable插件绑定“购物车”中接收元素,当“产品区”元素完全拖曳至“购物车”时,触发定义的drop函数,改变“购物车”中背景色和总数量值。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>放置插件</title> <link href="style.css" rel="stylesheet" type="text/css" /> <script src="http://www.imooc.com/data/jquery-1.8.2.min.js" type="text/javascript"></script> <script src="http://www.imooc.com/data/jquery-ui-1.9.2.min.js" type="text/javascript"></script> </head> <body> <div id="divtest"> <div class="box"> <div class="title">产品区</div> <div class="drag"><div>苹果</div></div> </div> <div class="box"> <div class="title">回收站</div> <div class="cart"><div id="tip">还没有产品</div></div> </div> </div> <script type="text/javascript"> $(function () { $(".drag").draggable(); $(".cart").droppable({ drop: function () { ? ? ? } }) }); </script> </body> </html>
#divtest { width: 282px; } .box { width: 280px; border: solid 1px #eee; margin: 10px 0px; } .box .title { padding: 8px; background-color: Blue; color: #fff; height: 23px; line-height: 23px; font-size: 15px; font-weight: bold; } .box .drag { padding: 5px; cursor: move; } .box .drag div { border: solid 1px #fff; background-color: red; color:#fff; cursor: move; width: 35px; padding: 20px; text-align: center; } .box .cart { padding: 5px; cursor: move; } .box .cart div { padding: 5px; height: 55px; text-align:center; } .focus { background-color: #eee; }