WindowsPhone7.5中的Javascript拖放

WindowsPhone7.5中的Javascript拖放,javascript,html,windows-phone-7,Javascript,Html,Windows Phone 7,我正在尝试在Windows7.5手机上使用拖放功能。 最初,我尝试使用jQueryUIDragable,它可以在除Windows7.5之外的所有浏览器中工作。 后来进一步探索,我发现windows中没有touchstart、touchend和touchmove事件。 所以我试着使用mousedown,mousemove事件让它工作,这些事件令人震惊地触发。但是他们没有按正确的顺序开火。(mousemove在mousedown之前启动)。 dragstart和dragend事件也不起作用。 我需要

我正在尝试在Windows7.5手机上使用拖放功能。 最初,我尝试使用jQueryUIDragable,它可以在除Windows7.5之外的所有浏览器中工作。 后来进一步探索,我发现windows中没有touchstart、touchend和touchmove事件。 所以我试着使用mousedown,mousemove事件让它工作,这些事件令人震惊地触发。但是他们没有按正确的顺序开火。(mousemove在mousedown之前启动)。 dragstart和dragend事件也不起作用。 我需要让它工作。你有什么建议吗

/*Eg1:does not work*/
$("#draggable").draggable(); 

/*Eg2:This event does not fire*/
 $("#draggable").bind("touchstart touchmove touchend", function(){
alert("touch events supported");})

/*Eg3: In this case, mousemove fires before mousedown.*/
$("#draggable").bind("mousedown", function(){
alert("mousedown");});

$("#draggable").bind("mousemove", function(){
alert("mousemove");});

我只有在WindowsPhone8中使用Javascript的经验,WindowsPhone8使用IE10(与WP7.5和WP7.8中的IE9相反),但您可以尝试一下我的方法

在WP8(IE10)中,Microsoft支持
指针
事件
MSPointerUp
MSPointerMove
MSPointerDown
而不是
touchstart
touchmove
touchend
事件。试着用这些看看它们是否有效

然而,在我创建的示例中,我甚至不需要使用那些专有事件,因为IE 10很高兴地使用了标准鼠标事件(
mouseup
mousemove
mousedown
),并且在一定程度上工作得很好。我对事件的顺序没有任何问题(如你在问题中所述)。拖动时出现的主要问题是,
mousemove
事件停止触发(由浏览器触发),浏览器开始平移页面,使我拖动的元素处于不稳定状态(无
mousemove
mouseup
触发)。使用
event.preventDefault()
也没有帮助,因为它不会阻止页面平移。为了克服这个问题,我查阅了微软关于他们触摸事件的文档,发现了这个CSS行

-ms-touch-action: none;
我将此应用于要拖动的元素,解决了我的问题。您可以阅读有关上述专有CSS属性的所有信息。注意不要将此属性应用于页面的整个
正文
(我之前已经这样做了),因为它会阻止页面平移和缩放的默认浏览器行为。正如我所说的,只在要拖动的元素上应用它,它就会工作


这也是我对WP 8的经验。我不知道它是否适用于以前版本的Windows Phone。

我只有在使用IE 10的Windows Phone 8中使用Javascript的经验(与WP7.5和WP7.8中的IE 9不同),但您可以尝试一下我的方法

在WP8(IE10)中,Microsoft支持
指针
事件
MSPointerUp
MSPointerMove
MSPointerDown
而不是
touchstart
touchmove
touchend
事件。试着用这些看看它们是否有效

然而,在我创建的示例中,我甚至不需要使用那些专有事件,因为IE 10很高兴地使用了标准鼠标事件(
mouseup
mousemove
mousedown
),并且在一定程度上工作得很好。我对事件的顺序没有任何问题(如你在问题中所述)。拖动时出现的主要问题是,
mousemove
事件停止触发(由浏览器触发),浏览器开始平移页面,使我拖动的元素处于不稳定状态(无
mousemove
mouseup
触发)。使用
event.preventDefault()
也没有帮助,因为它不会阻止页面平移。为了克服这个问题,我查阅了微软关于他们触摸事件的文档,发现了这个CSS行

-ms-touch-action: none;
我将此应用于要拖动的元素,解决了我的问题。您可以阅读有关上述专有CSS属性的所有信息。注意不要将此属性应用于页面的整个
正文
(我之前已经这样做了),因为它会阻止页面平移和缩放的默认浏览器行为。正如我所说的,只在要拖动的元素上应用它,它就会工作


这也是我对WP 8的经验。我不知道它是否适用于以前版本的Windows Phone。

您应该提供您正在执行的操作的代码示例,而不仅仅是文字说明。通过提供代码示例,人们将更有可能帮助您并找到答案。您应该提供所做工作的代码示例,而不仅仅是文本描述。通过提供代码示例,人们将更有可能帮助您并找到答案