DataTransfer 对象包含如下属性和方法。
dataTransfer.dropEffect:设置或返回拖放目标上允许发生的拖放行为。如果此处设置的拖放行为不在 effectAllowed 属性设置的多种拖放行为之内,拖放操作将会失败。该属性值只允许为"none"'、"copy"'、"link"和"move"四个值之一
dataTransfer.effectAllowed:设置或返回被拖动元素允许发生的拖动行为。该属性
值可设置为'none”、"copy"、"copyLink"、"copyMove"、"link"、"linkMove"、"move"、"all"和"uninitialized"
dataTransfer.items:该属性返回 DataTransferltems 对象,该对象代表了拖动数据。
dataTransfer.setDraglmage(element, x, y):设置拖放操作的自定义图标。其中element 设置自定义图表,x设置图标与鼠标在水平方向的距离:y设置图标与鼠标在垂直方向的距离。
dataTransfer.addElement(element):添加自定义图标。
dataTransfer.types:该属性返回一个 DOMStringList 对象,该对象包括了存入dataTransfer 中数据的所有类型。
dataTransfer.getData(format):获取 DataTransfer 对象中format 格式的数据。
dataTransfer.setData(format,data):向 DataTransfer 对象中设置 format 格式的数据。其中 format 代表数据格式,data 代表数据。
dataTransfer.clearData(format)):清除 DataTransfer 对象中format 格式的数据。如果省略format 格式,则意味着清除 DataTransfer 对象中的全部数据。
通过 DataTransfer 对象,可以让拖放操作实现更丰富的功能,开发者可以在拖放开始时(ondragstart 事件)将拖放源的数据存入 DataTransfer 对象中,然后在拖放结束时从DataTransfer 对象中读取数据,这样就可以完成更复杂的拖放操作了。
”拖“开始时(通过ondragstart事件监听器来实现),程序要把需要携带的数据放入DataTransfer对象中。
”放“下元素时(通过ondrop事件监听器来实现)程序从DataTransfer对象中取出数据,并利用该数据进行相应处理。拖放数据添加﹤item﹥、﹤remove﹥,分别代表需要添加收藏项的数据、需要删除的数据。