1. 程式人生 > >html5 drag drop

html5 drag drop

// 生命週期
//dragstart -> drag -> dragenter -> dragover ->  dragleave  -> drop -> //dragend   
//拖拽元素 dragstart ->drag ->dragend
//目標元素 dragenter ->dragover ->drop->dragleave 

// 使用者開始拖動元素時觸發
    dragstart (item) {
        //ie下 要return true 並且不可阻止預設行為
      return true;
    },    
 
// 元素正在拖動時觸發 drag (item) { //ie下不可阻止預設行為 而且不需要return /*if (event && event.preventDefault) {//如果是FF下執行這個 event.preventDefault(); }else{ window.event.returnValue = false;//如果是IE下執行這個 }*/ }, // 使用者完成元素拖動後觸發 dragend (item) { //ie下要阻止預設行為 並且return false
if (event && event.preventDefault) {//如果是FF下執行這個 event.preventDefault(); }else{ window.event.returnValue = false;//如果是IE下執行這個 } return false }, //沒用上 dragoverHeader () { if (event && event.preventDefault) {//如果是FF下執行這個 event.preventDefault(); }
else{ window.event.returnValue = false;//如果是IE下執行這個 } }, // 當被滑鼠拖動的物件進入其容器範圍內時觸發此事件 dragenter (item) { //ie 下 要阻止預設行為 並且return true if (event && event.preventDefault) {//如果是FF下執行這個 event.preventDefault(); }else{ window.event.returnValue = false;//如果是IE下執行這個 } return true; }, // 當某被拖動的物件在另一物件容器範圍內拖動時觸發此事件 dragover (item) { //ie 下 要阻止預設行為 並且return true if (event && event.preventDefault) {//如果是FF下執行這個 event.preventDefault(); }else{ window.event.returnValue = false;//如果是IE下執行這個 } // 只有當可拖動,而且沒有禁用的才執行下面的程式碼,並且不是自身 if (this.allowDrag && this.notSelf) { // 設定當前的hoverNode this.hoverNode = item } return true; }, // 在一個拖動過程中,釋放滑鼠鍵時觸發此事件 drop (item) { //ie下要阻止預設行為 if (event && event.preventDefault) {//如果是FF下執行這個 event.preventDefault(); }else{ window.event.returnValue = false;//如果是IE下執行這個 } },