javascript – Raphaeljs:如何使用event.target获取元素引用?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Raphaeljs:如何使用event.target获取元素引用?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1695字,纯文字阅读大概需要3分钟。
内容图文
![javascript – Raphaeljs:如何使用event.target获取元素引用?](/upload/InfoBanner/zyjiaocheng/778/95447179c57c44bb801b1bbf24977616.jpg)
目前我有一个绘制形状的小应用程序.
这是一个包含我的问题的例子:http://jsfiddle.net/auyaC/
我收到错误:Uncaught TypeError:Object [object Object]没有方法’getBBox’
下面是错误来自的剥离代码
当用户点击一个形状时,我会抓住event.target
var onm ouseDown = function(event) {
setBBoxes($(event.target)); // Seems OK
};
我想让BBoxes再次回来,但我的形状已经失去了BBox ..
var setBBoxes = function(shape) {
shape.getBBox(); // Unable.. getBBox is part of Raphael shapes, but mine is not the real reference?
};
还有一个剥离的例子:http://jsfiddle.net/auyaC/2/
编辑
好吧,我的问题是混淆了jQuery和Raphaeljs,因为我无法使用Raphael的鼠标事件.
似乎在线使用鼠标事件或触摸事件的示例都不起作用.
我已阅读这些问题报告
> https://github.com/DmitryBaranovskiy/raphael/issues/720
> https://github.com/DmitryBaranovskiy/raphael/pull/737
Windows也认为我有触摸输入可用于255个触点.
但是我没有触摸屏了(有一个但改变了屏幕并删除了驱动程序).
所以对我来说,即使http://jsfiddle.net/5BPXD也无法在我的电脑上运行……
解决方法:
你通常不希望像这样混合jQuery和Raphael,因为很容易混淆你正在使用哪个库的事件处理程序和方法.当你开始直接搞乱Raphael创建的DOM元素时,你也失去了Raphael对旧浏览器的后备功能.
在这种情况下,我建议将.mousedown()侦听器直接添加到Raphael元素中.
var paper = new Raphael($(".testarea")[0], $(".testarea").width(), $(".testarea").height());
var circAttr = {
"fill": "#4ba6e8",
"stroke": "#1a81cc",
"stroke-width": "2"
};
paper.circle(200, 200, 80).attr(circAttr).mousedown(function() {
someFunction(this);
});
var someFunction = function(shape) {
console.log(shape.getBBox());
};
更新小提琴:http://jsfiddle.net/auyaC/3/
当然,您无法使用选择器一次选择所有形状,并立即将事件添加到所有形状.您需要在创建时为每个事件添加mousedown事件.我认为,小的权衡.
内容总结
以上是互联网集市为您收集整理的javascript – Raphaeljs:如何使用event.target获取元素引用?全部内容,希望文章能够帮你解决javascript – Raphaeljs:如何使用event.target获取元素引用?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。