我正在使用https://github.com/furf/jquery-ui-touch-punch来映射触摸事件。 jQuery UI droppable具有以下代码,其中事件和ui对象自动传递。我想编写一个自定义处理程序,我可以传递相同的对象。任何人都可以建议我如何在IPAD上的touchend事件中获取ui对象的引用?这样我就可以为桌面和IPAD使用相同的drop功能。
drop: function(event, ui) {
dropFunction(event, ui);
}
所以关于touchend事件,我可以调用dropFunction(event,ui)
其他信息:
我正在尝试从表行拖放到jstree。如果我只是使用Touch Punch而不进行修改,我可以进行拖放操作。当我使用以下代码阅读值时,它可以在桌面浏览器上运行,但不适用于IPAD。
var newOrgId = $('#ohTreeDiv .jstree-hovered').find('span:last').text()
当使用桌面浏览器时,jstree-hovered类会自动添加到悬停节点但是这不会在Ipad上添加,所以我在touchend方法中手动添加此类。在这一步之后,我甚至添加了悬停类。当touchend发生时,它似乎没有被调用。
在jstree的目标节点上拖动元素后,我必须点击它以便触发掉落。 @FrédéricHamidi
答案 0 :(得分:1)
下面是touchend代码,我必须稍微修改一下才能使它与jstree一起使用,以便我可以使用jstree-hovered类读取值。我要添加的一个提示是在测试时删除所有警报,因为它将与我们使用jQuery读取的值相关。
c._touchEnd = function(f) {
var i = f.originalEvent.changedTouches[0];
var elementFromPoint1 = document.elementFromPoint(i.clientX, i.clientY);
var id=elementFromPoint1.id;
var str=new String(id);
var pos=str.indexOf("dropTarget");
if(pos>=0){
elementFromPoint1.className="jstree-hovered";
}
if (!a) {
return;
}
d(f, "mouseup");
d(f, "mouseout");
if (!this._touchMoved) {
d(f, "click");
}
a = false;
};