奇怪的问题:触摸屏上未定义变量

时间:2015-05-11 11:21:12

标签: jquery html css multi-touch

我在我正在构建的网页上遇到了非常奇怪的行为。 我想在用户删除图片并想要撤消该操作并将图片放回原点时实现撤消功能。

现在,用户可以将图像向左拖动并将其放入垃圾箱。当他点击UNDO按钮时,应该在最后的已知位置恢复图片。

在代码中我将对象的位置和名称添加到数组中:

deletedProfiles.push({"id": CandidateId, "posX": PositionX, "posY": PositionY});

之后,当用户点击UNDO按钮时,我正在读出数组的最后一个值并使用它来恢复DIV并在最后知道的位置上重新定位它:

// GET THE VALUES FROM THE LAST PROFILE OUT OF THE HISTORY
historyId = deletedProfiles[deletedProfiles.length-1].id;
historyPositionX = parseInt(deletedProfiles[deletedProfiles.length-1].posX);
historyPositionY = parseInt(deletedProfiles[deletedProfiles.length-1].posY);

// RESTORE THE PROFILE
$('#' + historyId).removeClass("grey").addClass("color");
$('#' + historyId).fadeIn(250);
$('#' + historyId).offset({ top: historyPositionY, left: historyPositionX});

现在,当我在笔记本电脑上打开此页面并执行所需操作时,它可以完美运行。 当我使用连接到笔记本电脑的触摸屏而我只刷新同一页面时,deletedProfiles[deletedProfiles.length-1].id将返回“未定义”。

在我的平板电脑上它有同样的问题,它无法识别变量。

我已经确定变量是第一个加载到页面上的东西,以防止对尚不存在的变量进行任何调用。此外,当您单击UNDO按钮时,它会指出阵列中有1个元素。

我试图用小提琴重现它,但没有任何运气。我在http://bit.ly/1AR6l0Z

上传了一个精简的页面版本

只是一些测试说明: - 将图片向左拖动并将其放在将出现的灰色区域中并将其放入。图片将消失。

  • 点击UNDO按钮,一旦放下图片就会出现。

  • 警报框将弹出信息。

如果有人知道为什么会这样,请赐教。

供您参考:我使用的是Chrome浏览器。

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否检查过您的“拖放”事件是否适用于您的平板电脑,它可能不会被触发而不会推送您的阵列?

我发现这个问题可能类似 ipad drag and drop

很抱歉,如果它没有帮助我在这里很新:)