jQuery 1.7 clientX / pageX未定义 [英] jQuery 1.7 clientX/pageX undefined

查看:135
本文介绍了jQuery 1.7 clientX / pageX未定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从jqueryUI中使用jQuery和draggable。当我将jQuery从1.6更新为1.7,客户端X和pageX属性从事件变量中消失。以下是一个例子:



http://jsbin.com/ezulas/ 7 / edit



如果在给定的示例中,jQuery版本更改为1.6.4 - 它开始工作。最新版本 - clientX / Y和pageX / Y都不工作。我发现我可以使用e = e.originalEvent - 但这似乎不是正确的解决方案。

解决方案


event.layerX和event.layerY:我们已经在1.7版本中删除了这些非标准的
属性。虽然我们通常会通过一个弃用通知期限为
,Chrome版本16
会在页面上生成大量的控制台警告消息。因为
这个,我们决定立即删除它们。在
支持这些属性的平台上,它们可以通过
event.originalEvent.layerX和event.originalEvent.layerY获取。


资料来源: http:// blog.jquery.com/2011/11/03/jquery-1-7-released/



当您 console.log(e); 你的 dragstop 事件处理程序,你可以看到所有的 x / y jQuery 1.7中缺少坐标数据;但是可以在 event.originalEvent 中访问。



更新



如果您在事件对象中环顾四周,您可以找到 pageX pageY origionalEvent 属性中:

  $( '#试验')的html(e.originalEvent.pageX + '' + e.originalEvent.pageY); 

这是jsbin的更新版本: http://jsbin.com/ezulas/13/edit


I use jQuery and draggable from jqueryUI. When I update jQuery from 1.6 to 1.7 clientX and pageX attributes disappeared from event variable. Here is an example:

http://jsbin.com/ezulas/7/edit

If in given example jQuery version is changed to 1.6.4 - it starts working. With latest release - both clientX/Y and pageX/Y are not working. I discovered I can use e=e.originalEvent - but that doesn't seems to be the proper solution.

解决方案

event.layerX and event.layerY: We have removed these non-standard properties in version 1.7. Although we normally would have gone through a deprecation notice period for these, Chrome version 16 generates a flood of console warning messages on the page. Because of this, we decided to remove them immediately. On platforms that still support these properties, they are available through event.originalEvent.layerX and event.originalEvent.layerY.

Source: http://blog.jquery.com/2011/11/03/jquery-1-7-released/

When you console.log(e); inside your dragstop event handler you can see that all the x/y coordinate data is missing in jQuery 1.7; but it can be accessed in event.originalEvent.

UPDATE

If you look around in the event object you can find pageX/pageY in the origionalEvent property:

$('#test').html(e.originalEvent.pageX+','+e.originalEvent.pageY);

Here is an updated version of your jsbin: http://jsbin.com/ezulas/13/edit

这篇关于jQuery 1.7 clientX / pageX未定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆