Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript GWT DND更改数据传输图像或光标_Javascript_Gwt_Drag And Drop - Fatal编程技术网

Javascript GWT DND更改数据传输图像或光标

Javascript GWT DND更改数据传输图像或光标,javascript,gwt,drag-and-drop,Javascript,Gwt,Drag And Drop,当您转到此页面时,例如:然后开始拖动任何歌曲,您会得到这种良好的拖放行为: 然后,在拖放过程中,当您将鼠标悬停在接受拖放的区域上时,光标下的图像将更改为显示可以进行拖放: 有没有机会让这种东西与GWT一起工作 我为一些文本制作了一个虚拟小部件,在拖动开始后更改绘图方式似乎不起作用。我也尝试过改变光标,但没有成功 @覆盖 公共交通事故(DragOverEvent事件){ dragIndicator.setInnerText(“可以删除!”); event.getDataTransfer().s

当您转到此页面时,例如:然后开始拖动任何歌曲,您会得到这种良好的拖放行为:

然后,在拖放过程中,当您将鼠标悬停在接受拖放的区域上时,光标下的图像将更改为显示可以进行拖放:

有没有机会让这种东西与GWT一起工作

我为一些文本制作了一个虚拟小部件,在拖动开始后更改绘图方式似乎不起作用。我也尝试过改变光标,但没有成功

@覆盖
公共交通事故(DragOverEvent事件){
dragIndicator.setInnerText(“可以删除!”);
event.getDataTransfer().setDragImage(绘图指示器,
10, 10);
}  
拥有拖放功能很好,但正如我在这里看到的,我们只能修改悬停的元素我错了吗?

编辑

在阅读W3C()时,我遇到了以下问题:

“dropEffect”属性可控制 在拖放操作过程中指定用户。当数据传输 对象时,dropEffect属性设置为字符串值。 获取时,它必须返回其当前值。设置时,如果新的 值是“无”、“复制”、“链接”或“移动”中的一个,则 属性的当前值必须设置为新值。其他价值观 必须忽略这一点


但是,我在GWT代码中没有发现类似的内容,也许我会使用JSNI尝试它(必须检查它是否是标准的)

好的,我已经设法在悬停期间使用JSNI更改光标(仅在FF 15中测试)这远远不够完整和正确。

公共类MonWidget扩展小部件实现HasAllDragandDropHandler{
私人部门主管部门;
公共服务
{
mainDiv=Document.get().createDivElement();
SpanElement span1=Document.get().createSpanElement();
span1.设置内部文本(“span1”);
span1.可设置拖动(Element.DRAGGABLE_TRUE);
span1.getStyle().setBackgroundColor(“红色”);
SpanElement span2=Document.get().createSpanElement();
span2.设置内部文本(“span2”);
span2.可设置拖动(Element.DRAGGABLE_TRUE);
span2.getStyle().setBackgroundColor(“蓝色”);
主分区附加子分区(span1);
主要部门附属儿童(第2页);
setElement(mainDiv);
this.addDragStartHandler(新的DragStartHandler(){
公共启动(DragStartEvent事件){
Element=Element.as(event.getNativeEvent().getEventTarget());
event.setData(“文本”、“某些数据”);
event.getDataTransfer().setDragImage(元素,
10, 10);        
}
});
this.addDragOverHandler(新的DragOverHandler(){
@凌驾
公共交通事故(DragOverEvent事件){
setEffet(event.getNativeEvent(),“copy”);
//setEffet(event.getNativeEvent(),“link”);
//这似乎不起作用-setEffet(event.getNativeEvent(),“move”);
event.stopPropagation();
}
});
}
....
以及JSNI方法:

public最终本机void setEffet(NativeEvent e,字符串效果)/*-{
var dt=数据传输;
dt.dropEffect=效应;
}-*/;