droppable構建了一個可拖入的區域。droppable組件往往和draggable組件一起使用,可以將draggable組件拖入到droppable組件內,實現自身想達到的效果,我們首先通過一個極為簡單的回收站例子來了解一下droppable組件。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/CSS" href="easyui/themes/default/easyui.css"/> <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css" /> <script type="text/javascript" src="easyui/jquery.min.js"></script> <script type="text/Javascript" src="easyui/jquery.easyui.min.js"></script> <title>droppableDemo</title> <style> .droppable_container { width:64px; height: 64px; } .imgRecy { width:64px; height: 64px; } .imgDoc { margin: 50px 0 0 50px; width:48px; height: 48px; } </style> </head> <body> <div id="container"> <div class="easyui-droppable droppable_container" id="droppableContainer"> <img src="images/recy.png" class="imgRecy" id="recy"> </div> <div id="doc1" class="easyui-draggable"> <img src="images/doc.png" id="d1" class="imgDoc"> </div> <div id="doc2" class="easyui-draggable"> <img src="images/doc.png" id="d2" class="imgDoc"> </div> </div> <script> $("#droppableContainer").droppable({ accept:'#doc1, #doc2', onDrop:function(e, source) { $(source).remove(); $("#recy").attr("src","images/recy2.png"); } }); </script> </body></html> 下面分別是拖入前和拖入后的效果圖。 其實原理很簡單。我們首先準備兩個垃圾桶圖標,一張是空垃圾桶,另一張是滿的垃圾桶,同時再準備一個文件圖標。將垃圾桶構造為droppable組件,同時將兩個文件構造為draggable組件。一旦將任意一個文件拖到droppable組件內部(即垃圾桶中),通過jQuery將該文件圖標從頁面中刪除,同時將空垃圾桶圖標變換為滿垃圾桶圖標即可。 droppable組件屬性:
屬性名稱 | 屬性值類型 | 屬性默認值 | 描述 |
---|---|---|---|
accept | 選擇器 | null | 指定哪些draggable可以被放入。 |
disabled | 布爾值 | false | 禁用組件。 |
accept屬性指定了哪些draggable是可以被放入到droppable組件內的,值為draggable組件的選擇器(如“#doc1”)。上例代碼允許兩個文件圖標放入,也就是id為“doc1”和“doc2”的div。 droppable組件方法:
方法名稱 | 參數 | 描述 |
---|---|---|
options | 無 | 返回所有屬性。 |
enable | 無 | 啟用組件。 |
disable | 無 | 禁用組件。 |
方法就三個,很簡單,也不多做說明。
droppable組件事件:
事件名稱 | 參數 | 描述 |
---|---|---|
onDragEnter | e, source | 當draggable組件進入droppable組件時觸發。 |
onDragOver | e, source | 當draggable組件在droppable組件內部移動是觸發。 |
onDragLeave | e, source | 當draggable組件離開droppable組件時觸發。 |
onDrop | e, source | 當draggable組件被放置進droppable組件時觸發。 |
這四個事件的參數都一樣,e是js中的event對象,source是被放入的draggable組件的DOM。 onDragEnter和onDragLeave分別在draggable組件進入和離開droppable組件時觸發,只觸發一次。 onDragOver事件是在draggable組件在droppable組件內部移動時觸發,每移動一下觸發一次,可以通過該事件實現draggable組件在droppable組件內部坐標的實時顯示。 onDrop則在draggable組件放入到droppable組件內觸發,這個里的“放入”指在draggable組件上按下鼠標,然后把draggable組件拖入到droppable組件內部,再放開鼠標的一整個過程。
新聞熱點
疑難解答