WindowsPhone7.5中的Javascript拖放
我正在尝试在Windows7.5手机上使用拖放功能。 最初,我尝试使用jQueryUIDragable,它可以在除Windows7.5之外的所有浏览器中工作。 后来进一步探索,我发现windows中没有touchstart、touchend和touchmove事件。 所以我试着使用mousedown,mousemove事件让它工作,这些事件令人震惊地触发。但是他们没有按正确的顺序开火。(mousemove在mousedown之前启动)。 dragstart和dragend事件也不起作用。 我需要让它工作。你有什么建议吗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事件也不起作用。 我需要
/*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很高兴地使用了标准鼠标事件(mouseupmousemove
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很高兴地使用了标准鼠标事件(mouseupmousemove
mousedown
),并且在一定程度上工作得很好。我对事件的顺序没有任何问题(如你在问题中所述)。拖动时出现的主要问题是,mousemove
事件停止触发(由浏览器触发),浏览器开始平移页面,使我拖动的元素处于不稳定状态(无mousemove
或mouseup
触发)。使用event.preventDefault()
也没有帮助,因为它不会阻止页面平移。为了克服这个问题,我查阅了微软关于他们触摸事件的文档,发现了这个CSS行
-ms-touch-action: none;
我将此应用于要拖动的元素,解决了我的问题。您可以阅读有关上述专有CSS属性的所有信息。注意不要将此属性应用于页面的整个正文
(我之前已经这样做了),因为它会阻止页面平移和缩放的默认浏览器行为。正如我所说的,只在要拖动的元素上应用它,它就会工作
这也是我对WP 8的经验。我不知道它是否适用于以前版本的Windows Phone。您应该提供您正在执行的操作的代码示例,而不仅仅是文字说明。通过提供代码示例,人们将更有可能帮助您并找到答案。您应该提供所做工作的代码示例,而不仅仅是文本描述。通过提供代码示例,人们将更有可能帮助您并找到答案